Android handler机制流程详解
Android handler机制流程详解 handler机制由以下几部分组成: .Handler .Message .MessageQueue .Looper 总体流程介绍: 一、进程启动时 在main方法中为主线程创建了对应自己线程的Looper,在Looper被创建的同时会创建一个MessageQueue消息队列并持有。同时在main方法中调用了Looper.loop()进行一个死循环遍历Looper自己持有的消息队列。 二、创建handler 如果在主线程中创建,handler能获取到主线程对应的looper并持有。如果是在子线程中创建handler,则需要自己调用创建looper方法和自己调用Looper.loop。否则会报错。 三、创建Message并发送 创建的Message将创建自己的handler信息封装进Message内部,最终被发送到了MessageQueue消息队列中。 四、接收消息 在Looper.loop中,从MessageQueue中拿出Message,并根据其中对应的handler信息进行分发处理 对应关系: 一条线程Thread对应唯一的一个Looper,其对应相关的信息存储在ThreadLocal中。 一个Looper对象持有一个自己的MessageQueue。 在同一条线程中,无论创建多少handler