Android中Handler的机制
2012-11-06 00:00
274 查看
1.相关概念
1.Handler:可以看做是一个工具类,用来向消息队列中插入消息的;2.Thread:所有与Handler相关的功能都是与Thread密不可分的,Handler会与创建时所在的线程绑定;
3.Message:消息;
4.MessageQueue:消息队列,对消息进行管理,实现了一个Message链表;
5.Looper:消息循环,从MessageQueue中取出Message进行处理;
6.HandlerThread:继承Thread,实例化时自动创建Looper对象,实现一个消息循环线程.
2.线程中消息处理的流程图
![](http://static.oschina.net/uploads/space/2012/1106/222021_WtXm_156598.png)
消息插入队列的位置由参数uptimeMillis来确定。
3.Handler与线程的关系
![](http://static.oschina.net/uploads/space/2012/1106/222149_5yOu_156598.png)
1.HandlerThread就是一个封装了Looper的Thread.
2.Handler会与实例化时所在的线程绑定.
4.UI线程与子线程通信相关
![](http://static.oschina.net/uploads/space/2012/1106/222304_NJPl_156598.png)
1.需要更新UI,则需要使用与主线程绑定的Handler发送消息,若使用在子线程中创建的Handler则会抛出异常;
2.子线程中实例化Handler对象首先需要调用Looper.prepare(),否则会抛出异常;
3.调用Looper.loop()方法消息循环才会启动;
5.存在的问题
在onCreate(),onStart(),onResume()中通过子线程来修改UI不会抛出异常 。相关文章推荐
- Android异步消息处理机制 Handler、Looper、Message
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android学习之Handler消息传递机制
- Android中对消息机制(Handler)的再次解读
- Android Handler消息机制原理及总结
- Android应用程序消息处理机制(Looper、Handler)源码分析
- 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
- Android的消息处理机制(图+源码分析)——Looper,Handler,Message
- android的消息处理机制 Looper,Handler,Message
- Android--利用Handler消息转发机制实现倒计时(内含防止内存泄露处理)
- android之如何在两个activity之间传递handler_利用broadcast广播机制
- Android学习之Handler通信机制
- android 的handler 机制
- Android -- 消息处理机制源码分析(Looper,Handler,Message)
- Android Handler消息机制源码分析
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- 【Android 开发】: Android 消息处理机制之三: Handler 中 sendMessage() 源代码剖析
- Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制
- Android Handler 机制原理
- android的消息处理机制(图+源码分析)——Looper,Handler,Message