Handler消息机制 笔记
2021-12-25 14:11
68 查看
这是笔记,没有源码分析和详细过程,只有自己总结出来的重点,源码分析看参考资料,前辈写的很好。
- 一个线程,一个Looper,一个MessageQueue,多个Handler
- MessageQueue单链表结构
- 使用ThreadLocal机制保证一个线程一个Looper:https://www.cnblogs.com/--here--gold--you--want/p/15730088.html
- 记得在子线程中调用Looper.prepare创建Looper,调用Looper.loop()开始循环,调用Looper.quie()结束循环
- Android主线程的Looper不用prepare,在ActivityThread就已经创建好了。
- 因为Looper.loop()是在子线程中调用,所以Handler的处理逻辑也就在子线程中进行了。
MessageQueue的next方法中,没有消息时,会调用nativePollOnce方法,这是一个natice方法,会调用到linux那边的一些有关线程阻塞之类的,会休眠,不会卡死!!然后有消息进来,在enqueueMessage方法中会调用nativeWake唤醒。
参考资料:
Android开发艺术探索:https://www.kancloud.cn/alex_wsc/android_art/1828638
面试:https://www2.imgeek.org/article/825358871
相关文章推荐
- Android笔记二十五.Android事件Handler消息传递机制
- 【Android基础笔记19】Handler、Looper消息传递机制
- Android(java)学习笔记203:网页源码查看器(Handler消息机制)
- Android开发笔记(十二)Handler(Android当中的消息机制)
- Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制
- Android应用开发学习笔记之多线程与Handler消息处理机制
- Android消息处理机制(Looper,Handler,MessageQueue笔记)
- Android(java)学习笔记149:AsyncTask(异步任务)和Handler(消息机制)
- Android应用开发学习笔记之多线程与Handler消息处理机制
- Android进阶笔记(二)Handler消息机制理解
- android笔记3——handler消息机制
- Android笔记二十五.Android事件Handler消息传递机制
- Android(java)学习笔记202:Handler消息机制的原理和实现
- 【Android基础笔记18】Handler消息传递机制——源码赏析
- Android消息机制Handler解析(源码+Demo)
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android循序渐进 - 3.3 Handler消息传递机制浅析
- 【Android 开发】: Android 消息处理机制之三: Handler 中 sendMessage() 源代码剖析
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系