博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发之Handler和Looper的关系
阅读量:5908 次
发布时间:2019-06-19

本文共 497 字,大约阅读时间需要 1 分钟。

        
  关于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界面进行更新!

你可能感兴趣的文章
Android录音与播放 .
查看>>
SQL with(unlock)与with(readpast) (转)
查看>>
Android 下使用 JSON 实现 HTTP 请求
查看>>
Dubbo架构设计详解
查看>>
微服务理论之一:应用架构演进史
查看>>
Visual Studio的“Waiting for a required operation to complete...”问题
查看>>
(转)js弹窗&返回值(window.open方式)
查看>>
JavaScript开发规范
查看>>
(原)android修改文件所属的用户组
查看>>
Google免费的SVN服务器管理VS2010代码
查看>>
设计模式之美:Adapter(适配器)
查看>>
开启PowerDesigner15工具栏上的被禁用掉的图标
查看>>
[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
查看>>
file_get_contents()函数超时处理方法
查看>>
数据库分表算法
查看>>
Linux环境变量的设置和查看方法
查看>>
在WIN32 DLL中使用MFC
查看>>
[Unity3D]计时器/Timer
查看>>
Linux 基础驱动 <1>
查看>>
可重入与线程安全
查看>>