Android中Handler的机制

1.相关概念

1.Handler:能够看作是一个工具类,用来向消息队列中插入消息的; 工具

2.Thread:全部与Handler相关的功能都是与Thread密不可分的,Handler会与建立时所在的线程绑定; oop

3.Message:消息; spa

4.MessageQueue:消息队列,对消息进行管理,实现了一个Message链表; 线程

5.Looper:消息循环,从MessageQueue中取出Message进行处理; 对象

6.HandlerThread:继承Thread,实例化时自动建立Looper对象,实现一个消息循环线程. 继承


2.线程中消息处理的流程图

消息插入队列的位置由参数uptimeMillis来肯定。 队列


3.Handler与线程的关系

1.HandlerThread就是一个封装了Looper的Thread. 消息队列

2.Handler会与实例化时所在的线程绑定. 循环

4.UI线程与子线程通讯相关

1.须要更新UI,则须要使用与主线程绑定的Handler发送消息,若使用在子线程中建立的Handler则会抛出异常; 方法

2.子线程中实例化Handler对象首先须要调用Looper.prepare(),不然会抛出异常;

3.调用Looper.loop()方法消息循环才会启动;

5.存在的问题

在onCreate(),onStart(),onResume()中经过子线程来修改UI不会抛出异常 。

相关文章
相关标签/搜索