1.Handler:能够看作是一个工具类,用来向消息队列中插入消息的; 工具
2.Thread:全部与Handler相关的功能都是与Thread密不可分的,Handler会与建立时所在的线程绑定; oop
3.Message:消息; spa
4.MessageQueue:消息队列,对消息进行管理,实现了一个Message链表; 线程
5.Looper:消息循环,从MessageQueue中取出Message进行处理; 对象
6.HandlerThread:继承Thread,实例化时自动建立Looper对象,实现一个消息循环线程. 继承
消息插入队列的位置由参数uptimeMillis来肯定。 队列
1.HandlerThread就是一个封装了Looper的Thread. 消息队列
2.Handler会与实例化时所在的线程绑定. 循环
1.须要更新UI,则须要使用与主线程绑定的Handler发送消息,若使用在子线程中建立的Handler则会抛出异常; 方法
2.子线程中实例化Handler对象首先须要调用Looper.prepare(),不然会抛出异常;
3.调用Looper.loop()方法消息循环才会启动;
在onCreate(),onStart(),onResume()中经过子线程来修改UI不会抛出异常 。