您的位置:首页 > 移动开发 > Android开发

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.线程中消息处理的流程图



消息插入队列的位置由参数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不会抛出异常 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息