当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,