Android开发中Handler理解
来源:互联网 发布:有道英语翻译软件下载 编辑:程序博客网 时间:2024/06/05 19:52
一个Android应用程序被创建的时候都会创建一个UI主线程,但是有时我们会有一些比较耗时的操作,为了防止阻塞UI主线程,我们会将耗时的操作放到子线程中进行处理,处理完之后操作UI,但是Android不允许子线程操作UI,违背了Android单线程模型的原则(即 Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行),所以Android通过Handler消息机制来实现线程之间的通讯。
- 首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;因为Looper.prepare()在一个线程中只能调用一次,所以MessageQueue在一个线程中只会存在一个。
- Looper.loop()会让当前线程进入一个无限循环,不端从MessageQueue的实例中读取消息,然后回调msg.target.dispatchMessage(msg)方法。
- Handler的构造方法,会首先得到当前线程中保存的Looper实例,进而与Looper实例中的MessageQueue想关联。
- Handler的sendMessage方法,会给msg的target赋值为handler自身,然后加入MessageQueue中。
- 在构造Handler实例时,我们会重写handleMessage方法,也就是msg.target.dispatchMessage(msg)最终调用的方法。
阅读全文
0 0
- Android开发中Handler理解
- Android 中handler的理解
- Android中Handler的理解
- Android开发中Handler用法
- Android开发中Handler总结
- Android中Looper, Handler, MessageQueue的理解
- Android中线程和handler的理解
- Android中Handler机制的理解
- Android中Handler的理解与总结
- 深入理解Android中Handler机制
- Android中Handler的sendEmptyMessage的理解
- Android中Handler的使用与理解
- Android开发中Handler使用入门
- Android开发中使用Handler机制
- Android开发中Handler的经典总结
- Android开发中Handler的经典总结
- Android开发中Handler的经典总结
- Android开发中Handler的经典总结
- Android Fragment 完全解析(上)
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
- HDU 6162 主席树+LCA(树上求区间[a,b]中的个数)
- 【HDU 1800】Flying to the Mars(STL map)
- 4.5 leetcode -5 same-tree
- Android开发中Handler理解
- 微巨科技:关于使用微信卡券开展储值相关业务的说明
- Netty源码解读(四)Netty与Reactor模式
- 重载函数
- What?一个rand都没有,然而为什么演示结果是随机的???
- E
- 头部联动 小圆点 数据请求 网络判断 自动轮播
- Linux dpkg 命令
- PAT甲级1001. A+B Format (20)