Handler
来源:互联网 发布:php零基础到项目实战 编辑:程序博客网 时间:2024/06/10 18:45
首先Handler 是一个消息分发对象。而消息分发,有赖于消息循环器,也就是 Looper。在一个线程中,Looper 阻塞线程,等待消息构成循环,有了消息,分配到对应的 Handler,让他进一步分发处理。
Handler遵循先进先出原则,Looper则是用管理线程间对象的消息交换
Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列),将MessagQueue中的消息分发给Handler处理。
Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从MessageQueue取出)所送来的消息。
Message:消息(数据载体)。
Message Queue(消息队列):用来存放线程放入的消息。
线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。
1)Handler创建对象时会关联一个Looper对象
2)Handler从Message回收队列中获取消息
3)Handler发送消息到Looper(Message被添加到Looper队列中)
4)Looper的消息队列发现有新的消息后 把消息给Hanlder的handlermessage方法执行消息
再说主线程Looper对象在创建时会调用一个prepareMainLooper方法创建一个MainLooper对象
子线程Looper对象在创建时会调用prepare方法创建子线程Looper对象,prepare方法在调用时会关联子线程、创建MessageQueue消息队列
【内容整理自网络,如有侵权,告知即删】
- Handler
- Handler
- Handler
- handler
- handler
- Handler
- Handler
- Handler
- Handler
- Handler
- Handler
- handler
- Handler
- handler
- handler
- Handler
- Handler
- Handler
- 启动另一个Activity并利用Intent传输数据
- linux 远程连接mysql数据库
- Oracledbconsoleorcl启动不了,本地连接数据库失败
- iOS那些简单的动画,属性详解和转场动画
- Android文字跑马灯控件(文本自动滚动控件,左右移动 带源码)
- Handler
- Android自定义View-TitleBar(标题栏)详细说明
- bzoj[JLOI2011]飞行路线
- 3.PN结
- CreateJS框架初探
- Codeforces Beta Round #22 (Div. 2 Only)-B. Bargaining Table
- 025.自定义View中应用贝塞尔曲线
- forward的细节(2)
- bochs安装(ubuntu)