阅读背景:

Handler ,Looper , Message , MessageQueue的调度原理

来源:互联网 

一、Handler机制工作流程

Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑,MessageQueue是指消息队列,它的内部存储了一组消息,以队列的形式对外提供插入和删除工作,它的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表。Looper是消息循环,由于MessageQueue只是一个消息的存储单元,它不能去处理消息,而Looper填补了这个功能,Looper会以无限循环的形式去查询是否有新消息,有的话就处理消息,否则就一直等待着,Looper中还有一个特殊的概念-ThreadLocal,ThreadLocal并不是线程,它的作用是可以在每个线程中存储数据,Handler创建的时候会采用当前线程的Looper来构造消息循环系统,那么Handler内部就是用ThreadLocal来获取当前线程的Looper的。需注意的是线程默认是没有Looper的,如果需要使用Handler就必须为线程创建Looper,我们所说的主线程(UI线程)就是ActivityThread,它在被创建的时候会初始化Looper,所以主线程默认可以使用Handler了。Android的消息机制主要是指Handler的运行机制,Handle




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: