Android异步消息机制架构

Android异步消息处理架构,其实没那么复杂。简单来说就是looper对象拥有message queue,并且负责从message queue中取出消息给handler来处理。同时handler又负责发送messagelooper,由loopermessage添加到message queue尾部。就一个圈儿。下面给出图解,应该不难吧?

所以很明显handlerlooper是来联系在一起的。需要说明的是,多个message可以指向同一个handler,多个handler也可以指向同一个looper

还有一点很重要,普通的线程是没有looper的,如果需要looper对象,那么必须要先调用Looper.prepare()方法,而且一个线程只能有一个looper。调用完以后,此线程就成为了所谓的LooperThread,若在当前LooperThread中创建Handler对象,那么此Handler会自动关联到当前线程的looper对象,也就是拥有looper的引用。

阅读原文 »

1 收藏


直接登录

推荐关注