美文网首页
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