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

初识android的消息处理机制

2015-10-27 17:38 260 查看
初识Android消息传递

1.Handler是android消息机制的上层接口,这就是在平常开发中,只需要和handler进行交互的原因.它可以简单的将一个任务切换到handler所在的线程中去执行.Android的消息机制主要是指Handler的运行机制.

2.handler的底层是靠MessageQueue 和 Looper支撑的.MessageQueue中文译为消息队列.Looper译为循环.MessageQueue并不能去处理消息,仅仅是一个消息的存储单元,Looper的作用是去查询是否有新消息,并将消息循环给线程去处理.

3.Looper中有一个ThreadLocal,它并不是一个线程,而是一个存储单元,用来存储数据.

4.主线程又称为UI线程, 也成为ActivityThread.ActivityThread在创立的时候,就会初始化Looper,这也是在主线程可以直接调用Handler的原因.

5.在处理UI的时候,ViewRootImpl会对当前的线程进行判断,即checkThread,如果不是主线程,则会抛出异常.

6.Handler的工作需要Looper,没有Looper的线程就会报错.创建Looper的过程也很简单,通过Looper.prepare()即为当前线程创建一个Looper,紧接着通过Looper.loop()来开启消息循环.

7.Handler发送消息的过程,仅仅是向MessageQueue队列中插入了一条消息,还是会通过Looper来循环,传递给Handler来处理.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android