从handler机制看多线程通讯
2016-04-08 17:12
316 查看
从handler机制看多线程通讯
android上的handler机制
android.os.Handler通过这个常见的类,去学习更深的知识。1. handler机制
做过android开发的程序员肯定都清楚这个叫做handler的玩意,所谓只能在主线程做UI操作就是靠它了。2. handler机制详解
handler机制是android中实现的多线程通讯机制,基于生产消费者模型,它主要由Handler,MessageQueue,Looper几个关键类实现。* Looper类作为核心类,一对一绑定线程,Looper对象所绑定的线程,作为消费者线程(代表性质的消费者线程就是主现场即UI线程)。
* Handler类作为起到事件处理机的核心,通过一系列post和send方法向Looper中的MessageQueue添加事件,Handler通过构造方法与Looper进行绑定,执行Handler的post和send方法的线程作为生产者线程。
* MessageQueue类作为消息队列储存由Message信息,每个Looper对象对应一个消息队列。
总结一下,每个线程对应一个Looper对象,Handler通过构造方法绑定Looper,使用post和send向与Handler绑定的Looper对象中的MessageQueue添加事件,Looper从MessageQueue中获取事件,交给绑定的Handler处理。
* 在内存中,对象对所有线程是共享的。
* Looper通过ThreadLocal储存为线程对象,实现了每个线程对应一个Looper实例。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories