Android中Handler的机制
1.Handler:可以看做是一个工具类,用来向消息队列中插入消息的;
2.Thread:所有与Handler相关的功能都是与Thread密不可分的,Handler会与创建时所在的线程绑定;
3.Message:消息;
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不会抛出异常 。
补充:移动开发 , Android ,