美文网首页
Android 从IntentService谈消息分发机制

Android 从IntentService谈消息分发机制

作者: 飘渺云天 | 来源:发表于2018-06-22 14:35 被阅读0次

一、IntentService消息分发过程:

1、创建线程

2、在线程开始运行的时候,通过Looper.prepare() 创建消息队列。中间涉及到ThreadLocal,保证了该线程只能有一个Looper和一个消息队列。

3、然后Looper.loop(); 开始了无限循环模式,不断从MessageQueue中获取消息,然后调用Message的target 的dispatchMessage 处理消息。MessageQueue也在不断的循环等待来新的消息,才会返回到Looper中。

4、Message创建,可以从缓存中获取已经处理的消息,或者创建新的对象

5、Handle 发送Message, 赋予Message的target值。 并且调用MessageQueue 的enqueueMessage 方法,按照Message.when顺序插入到队列之中。等待MessageQueue的next中无限循环获取。

6、Looper.loop() 这个无限循环终于拿到了MessageQueue 返回的Message了, 调用Message.target.dispatchmessage方法, 也就是Handle的dispatchmessage 开始处理消息。

7、消息处理完成,Message.recycleUnchecked 放入缓存池,等待下次使用。

详情请查看在csdn上的文章

相关文章

网友评论

      本文标题:Android 从IntentService谈消息分发机制

      本文链接:https://www.haomeiwen.com/subject/joykyftx.html