Handler消息机制

2021-10-02  本文已影响0人  阿泽Leo

Handler消息机制主要涉及以下类:

Handler必须创建在有Looper的线程中,Looper.prepare()即在该线程创建Looper。

  1. Handler发送消息到MessageQueue,调用MessageQueue的enqueueMessage(),将消息按时间顺序插入到链表中。
  2. Looper调用loop()开启无限循环,内部调用MessageQueue的next()取消息。内部调用nativePollOnce,作用是设置一个定时的睡眠。根据nextPollTimeoutMillis来判断睡眠:
  1. 取出消息后,则根据msg.target对应的handler,调用dispatchMessage来处理消息。当Looper调用了quit或者quitSafely,会导致取出的消息为null,则退出looper循环。

参考:
https://www.jianshu.com/p/a7559af33986
https://www.jianshu.com/p/13c8a66d3b5c

上一篇下一篇

猜你喜欢

热点阅读