美文网首页
Android Handler、MessageQueue、Loo

Android Handler、MessageQueue、Loo

作者: 祝小年 | 来源:发表于2016-06-01 15:46 被阅读90次

    Handler概述

    Handler的作用是线程间通信,在不同线程中间传递消息。

    消息循环主题结构图例分析

    Paste_Image.png

    从图中可以看出,四种颜色分别代表了四个对象,并且大致描述了几个对象之间的关系,以及消息的流转过程,首先Handler通过sendMessage将消息投递给MessageQueue,Looper通过消息循环(loop)不断的从MessageQueue中取出消息,然后消息被Handler的dispatchMessage分发到handleMessage方法消费掉。

    Handler

    通过Handler的sendMessage等方法来投递消息到MessageQueue,通过handleMessage来消费Message。Handler必须要有一个已经prepare好的Looper对象,也就是说必须调用了prepare方法(也包括prepareMainLooper方法),究其根本是初始化一个消息队列,这一过程将在下文中详细分析。

    Looper

    Looper负责从MessageQueue中取出消息,然后通过执行message.target.dispatchMessage()消费掉这个消息,这里的target就是Handler。

    MessageQueue

    消息队列,管理Handler投递过来的消息。

    Message

    用来承载数据的消息,最终被Handler消费掉。

    UML类图分析

    Paste_Image.png

    相关文章

      网友评论

          本文标题:Android Handler、MessageQueue、Loo

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