Handler原理核心点笔记
来源:互联网 发布:特定统计量数据模拟 编辑:程序博客网 时间:2024/06/05 07:15
1.在Looper中prepare()用于创建一个ThreadLocal对象,并存放一个Looper实例,并且prepare()方法只能代用一次,多次调用会出异常,所以一个线程只有一个Looper对象,创建一个MessageQueque对象,用 于存放Message。
2.Looper.loop()为一个无限循环,不断的从MessageQueque中获取消息,并且调用msg.target.dispatchMessage() 方法进行消息分发,dispatchMessage()会调用handlerMessage(Message message)接口进行更新UI。
3.Handler在初始化的时候会调用ThreadLocal.get()获取Looper实例,所以prepare()方法必须在Handler初始化之前调用。
4.Handler.sendMessage(Message msg)会给传入的msg内容加上当前Handler的引用,就是msg.target=this,然后再将Message放入MessageQueque。在步骤2中的msg.target就是在此时传入的。
5.Activity在使用Handler的时候不用调用prepare(),loop()是因为在ActivityThread中已经调用,所以如果要在子线程中新建一个Handler就必须先调用prepare(),loop();
总结:线程间通信就是一个阻塞队列
阅读全文
0 0
- Handler原理核心点笔记
- Handler原理笔记
- android Handler的核心原理,核心代码关键词
- Handler原理
- Handler原理
- Handler 原理
- Handler原理
- Handler原理
- Handler原理
- Android 学习笔记17:Handler,Looper,Message原理
- Android中handler的使用及原理---学习笔记
- Android中handler的使用及原理---学习笔记
- Handler 笔记
- Handler笔记
- Handler笔记
- Handler笔记
- spring学习笔记(1)IOC核心原理解析
- 《大型网站技术架构:核心原理与案例分析》笔记
- redis知识盘点【伍】_一致性哈希和cluster集群
- HDU-1081-“最大子矩阵和”---- 暴力优化:从6次幂到3次幂
- Linux查看文件夹的大小
- ava中上传excel文件并在服务器端读取存入数据库
- 详解汇编语言中乘法指令:MUL、IMUL
- Handler原理核心点笔记
- 6.7
- U盘的复制出现文件过大问题
- shell笔记(bash与dash)
- Java transient关键字学习使用
- 阿里云 CDN HTTPS 最佳实践系列——动态证书(一)
- Java文件的上传Commons-fileupload
- 香港财阀控制市民吃穿住行,富X代鱼肉工薪阶层
- 表达式语法分析——预测分析法