Android应用程序在启动每个线程时,都会创建一个消息队列。线程的生命周期分为创建消息队列和进入消息循环两个阶段。
消息循环分为:发送消息和处理消息。
Android系统主要通过MessageQueue、Looper和Handler三个类来实现Android应用程序的消息处理机制。
MessageQueue——描述消息队列
Looper——创建消息队列
Handler——发送消息、处理消息
创建线程消息队列过程
调用Looper类静态成员函数prepareMainLooper或者prepare来创建;
创建MessageQueue对象,保存在mQueue;
MessageQueue在创建的过程中,调用nativeInit方法在C++层创建一个NativeMessageQueue对象;
android_os_MessageQueue_nativeInit方法实现创建NativeMessageQueue;
NativeMessageQueue在创建的过程中,会创建一个C++层的Looper对象;
C++层的Looper对象创建过程中,会创建一个管道。