消息机制
Android中的消息机制主要是指Handler,MessageQueue,Looper机制。
Handler
Handler的主要方法:sendMessage(msg)、handleMessage(msg)、dispatchMessage(msg)。
其中sendMessage(msg)主要负责发送消息,调用enqueueMessage(msg,long)向MessageQueue中插入消息。
MessageQueue
消息队列本质上是一个单链表,主要方法有:enqueueMessage(msg,long)负责向链表中插入一条消息,next()负责从链表中取出一条消息,并删除。
Looper
首先来看Looper的构造器:
private Looper (boolean quitAllowed){
mQueue = new MessageQueue(quitAllowed)
mThread = Thread.currentThread();
}
常用方法:Looper.prepare(),Looper.loop();
在调用Looper.prepare()时,会生成一个消息队列并且绑定当前线程。
Looper.loop的方法调用了:next()方法来遍历消息,dispatchMessage(msg)方法来调用Handler的handleMessage(msg)。