展会信息港展会大全

android中消息机制简述 Handler,Message,Looper
来源:互联网   发布日期:2016-01-13 21:51:32   浏览:2098次  

导读:Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)......

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关系

首先将一个Message对象通过Handler发送到MessageQueue中,Looper负责从MessageQueue中取出Message,执行handleMessage中的方法体。

二、Looper和Thread关系

Looper依赖Thread,Looper只是一个消息循环体,它空有一段代码。只有Looper的代码跑在Thread中,才是一个真正的消息循环。(这点如同学习操作系统的进程和函数差不多,其实也就是那么回事儿)

对于一个Android而言,每一个界面都有一个默认的Thread、消息循环体Looper和Handler。

调用new Handler()可以获得当前线程的Handler

调用Looper.myLooper()可以获得当前线程的Looper。

赞助本站

人工智能实验室

相关热词: 消息机制

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港