Android开发之Handler和Looper的关系

来源:互联网 发布:在线真心话大冒险软件 编辑:程序博客网 时间:2024/05/29 07:46
          关于Handler的总结。

Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。

Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。

MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。

Looper:消息泵,不断地从MessageQueue中抽取Message执行。因此,一个MessageQueue需要一个Looper

Thread:线程,负责调度整个消息循环,即消息循环的执行场所。

    如图所示,Handler负责将数据压栈到Message队尾中,并从队头取出数据,而Looper负责从队列中进行循环取出,得到Handler的数据。注意Looper必须是UI的Looper,我们才能对UI界面进行更新!


13 0
原创粉丝点击