然后Handler接收消息方代码
时间: 2024-09-15 12:05:06 浏览: 35
go代码-controllerHandler
Handler是一种在Android中用于线程间通信的重要机制,它允许主线程(UI线程)和其他工作线程之间传递消息和数据。Handler的工作原理如下:
1. 创建Handler实例:通常在一个Activity、Service或者Fragment等组件内部创建一个Handler,通过它的构造函数指定Looper(负责处理消息循环的线程),如主线程的Looper。
```java
Handler mHandler = new Handler(Looper.getMainLooper()) {
// 这里编写处理消息的方法
};
```
2. 发送消息:在非UI线程上,我们使用`post()`或`postDelayed()`方法发送一个Runnable对象到Handler,该对象会在消息队列中等待被处理。
```java
mHandler.post(new Runnable() {
@Override
public void run() {
// 这里的代码将在主线程中运行
// 更新UI或其他需要UI线程操作的任务
}
});
```
3. 处理消息:当主线程的消息队列中有新的消息到达时,Handler会调用其关联的Runnable对象的run()方法。
4. 回调机制:如果你希望在特定条件下执行某些操作,可以提供一个MessageCallback接口作为Handler的回调,当消息处理完毕时调用。
```java
Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.what == YOUR_REQUEST_CODE) {
YourCallback yourCallback = (YourCallback) msg.obj;
yourCallback.onTaskCompleted();
}
}
};
```
阅读全文