Android消息队列浅析

 当面试官问到你消息对列的时候,恭喜你,已经跨过初级,在试探你的中级水平了。

Android的消息循环是参考Windows的消息循环机制来实现的。

消息队列4件套  Message、MessageQueue、Looper、Handler

1、Message 是消息对列的消息实体类,因为消息队列中会存放最多10个Message对象。常用属性 what,是消息体的Tag,用来区分是那个一消息体。

2、MessageQueue 先进先出”的原则存放消息,将Message对象以链表的方式串联起来。

3、Looper 是MessageQueue的管理者,主线程中是一对一的关系。子线程需要用到消息对列的话就需要经典二人组 。先调用 Looper.prepare()方法,然后再调用Looper.loop();

4、Handler 是封装和处理Message对象的。

通过源码可知消息走向如下

handler.sendMessage()-->handler.sendMessageDelayed()-->handler.sendMessageAtTime()-->msg.target = this;queue.enqueueMessage==>把msg添加到消息队列中

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

推荐阅读更多精彩内容