Handler,Looper,Message,MessageQueue原理

Handler

创建handler主要有两个构造,一个无参一个需要一个Looper

无参构造就会使用MainLooper

所以Handler中肯定有一个Looper

使用handler发送消息时

handler会把自己保存在Message中

然后把Message给Looper的MessageQueue

Looper会循环从MessageQueue中取出Message

调用Message中带的Handler方法来处理该消息

Looper会在线程中死循环,直到从MessageQueue中拿到一个空消息


Handler在哪个线程执行,取决于Looper属于哪个线程

每个线程只能有一个Looper

每个Looper只能有一个MessageQueue

可以多个handler共用一个Looper

你可能感兴趣的:(Handler,Looper,Message,MessageQueue原理)