Android 异步消息处理简单理解
标签: Android 异步消息
异步消息由四个部分组成:
1. Message
Message是在线程之间传递消息,它可以在内部携带少量的信息,用于不同线程之间的数据交换。
2. Handler
用于发送消息和处理消息.由Handler的sendMessage()方法发送消息,最后回到Handler的handleMessage()方法中。
3. MessageQueue
MessageQueue是消息队列的意思,主要用于存放所有通过Handler发送的消息,这部分消息会一直存放在队列中,等待被处理。每个线程只会有一个MessageQueue。
4. Looper
Looper是每个线程中的MessageQueue管家,调用Looper的loop()方法后就会进入到一个无限循环中,然后每当发现MessageQueue中存在一个消息,就会将他取出,并传递到Handler的handleMessage()方法中。每个线程也只会有一个Looper,因为Looper要产生一个MessageQueue,而MessageQueue一个线程只能有一个。
Looper运行方式:
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare(); //先初始化
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop(); //进入循环,等待消息
}