Handler机制简述

2017-01-20  本文已影响0人  wilson93

Loop.prepare

1.创建Loop对象

2.创建MessageQueue对象

3.loop绑定当前线程,通过Loop.myloop()获取

4.一个线程只有一个loop

Loop.loop

1.循环消息

2.调用handler分发消息msg.target.dispatchMessage(msg);

Handler

public Handler(Callback callback, boolean async)

此构造方法从当前线程获取loop对象,loop又关联了mqueue,当handler发送postxxx,或者sendmessagexxx时,最终都是调用sendMessageAtTime,里面实现方法enqueueMessage() 中msg.target被赋值当前的Handler对象。最后把消息放进消息队列,而Loop.loop一直循环读取消息,最后msg.target.dispatchMessage(msg);被执行。

dispatchMessage有三种处理方式,具体哪种方式看handler创建方式和调用方法。

参考

上一篇 下一篇

猜你喜欢

热点阅读