单线程模型中Message,Handler,Message Queue,Looper之间的关系
来源:互联网 发布:三坐标测量自动编程 编辑:程序博客网 时间:2024/06/05 04:50
1,Message
Message消息,理解为线程间交流的信息,处理数据后台线程需要更新UI,则发送Message内含一些数据给UI线程。
2,Handler
Handler处理者,是Message的主要处理者,负责Message的发送,Message内容的执行处理。后台线程就是通过传进来的 Handler对象引用来sendMessag(Message),而使用Handler,需要implement 该类的 handleMessage(Message)方法,它是处理这些Message的操作内容,例如Update UI。通常需要子类化Handler来实现handleMessage方法。
3,Message Queue
Message Queue消息队列,用来存放通过Handler发布的消息,按照先进先出执行。
每个message queue都会有一个对应的Handler。Handler会向message queue通过两种方法发送消息:sendMessage或post。这两种消息都会插在message queue队尾并按先进先出执行。但通过这两种方法发送的消息执行的方式略有不同:通过sendMessage发送的是一个message对象,会被 Handler的handleMessage()函数处理;而通过post方法发送的是一个runnable对象,则会自己执行。
4,Looper
Looper是每条线程里的Message Queue的管家。Android没有Global的Message Queue,而Android会自动替主线程(UI线程)建立Message Queue,但在子线程里并没有建立Message Queue。所以调用Looper.getMainLooper()得到的主线程的Looper不为NULL,但调用Looper.myLooper() 得到当前线程的Looper就有可能为NULL。
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
- android编程之在单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- Android基础之单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
- 单线程模型中Message,Handler,Message Queue,Looper之间的关系
- Android单线程模型中Message、Handler、Message Queue、Looper之间的关系---附实例源码
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系。
- Android单线程模型中Message、Handler、Message Queue、Looper之间的关系---附实例源码
- linux设备驱动归纳总结(六):2.分享中断号
- sax解析xml的特殊字符解决方法
- make clean与make distclean的区别
- [C#源代码]百度网盘地址批量转换工具
- TCP协议
- 单线程模型中Message,Handler,Message Queue,Looper之间的关系
- UI -- UIPickerView选取器
- Cocos2d-x 2.x设置竖屏方法 android ios
- linux设备驱动归纳总结(六):3.中断的上半部和下半部——tasklet
- inline const #define
- DCT变换和量化
- ios开发 关于委托代理小结
- eclipse 快捷键
- 静态库和动态库的区别