安卓中handler消息机制总结

每个程序员都知道,handler不管是在工作还是面试时候,都是经常用到或者被问到的,这里,我做了一些hanler的总结,希望对大家有用…

handler消息机制的原理: 在activity创建的时候, 主线程的ActivityMain 中会自动调用并创建一个looper 的对象,并在后台调用loop() 方法, 进行对消息队列 messageQue 的轮询查看, 如果子线程通过handler

                                       发送一条消息, 那么looper 轮询器会从 messageque 中取出这条消息, 在主线程中执行,

new Message() , 和 Message.obtain() : 都是创建message 对象 , 一般用后者, 后者内部会判断 消息池中是否有消息对象, 有的话复用, 并且从消息池中移除,

handler 中的一些疑虑: Handler ,线程, looper, MessageQue 之间的关系是 N:1:1:1  可以有多个handler 对象来发消息, 那么looper 是如何分辨是哪一个handler 发来的消息,

这是因为hanler 在发消息的时候, 会把自身的引用以target 的形式放到message 中 , 那么looper 在轮询的时候, 会先取出target 判断是哪个handler 发来的消息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容