跨类发handler
时间: 2023-09-24 21:02:50 浏览: 118
Android 跨进程通Messenger(简单易懂)
在Android开发中,我们有时需要在不同的类之间发送和处理Handler消息。这时,我们可以通过以下方式实现:
1. 在发送消息的类中创建一个Handler对象,并将该对象的引用传递到接收消息的类中。接收消息的类可以通过该Handler对象发送消息到发送消息的类中。
示例代码如下:
在发送消息的类中:
```
public class SenderClass {
private Handler mHandler;
public SenderClass(Handler handler) {
mHandler = handler;
}
public void sendMessage() {
Message message = mHandler.obtainMessage();
message.what = 1;
mHandler.sendMessage(message);
}
}
```
在接收消息的类中:
```
public class ReceiverClass {
private Handler mHandler;
public ReceiverClass(Handler handler) {
mHandler = handler;
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// 处理消息
break;
default:
break;
}
}
};
}
```
2. 在发送消息的类中创建一个Handler对象,并将该对象的引用传递到接收消息的类中。接收消息的类可以通过该Handler对象的post()方法发送Runnable对象到发送消息的类中。
示例代码如下:
在发送消息的类中:
```
public class SenderClass {
private Handler mHandler;
public SenderClass(Handler handler) {
mHandler = handler;
}
public void sendMessage() {
mHandler.post(new Runnable() {
@Override
public void run() {
// 处理消息
}
});
}
}
```
在接收消息的类中:
```
public class ReceiverClass {
private Handler mHandler;
public ReceiverClass(Handler handler) {
mHandler = handler;
}
}
```
以上是两种在不同类之间发送和处理Handler消息的方式。
阅读全文