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

第10章 Android的消息机制

2016-02-23 15:47 337 查看
Android的消息机制主要是指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程。系统提供Handler主要原因是为了解决在子线程中无法访问UI的矛盾。子线程不允许防伪UI:Android的UI控件不是线程安全的,多线程中并发访问可能导致UI控件处于不可预期的状态。
ThreadLocal:线程内部的数据存储类,可以在指定线程中存储数据。其实是个键值对,键是线程对象。
Handler:把消息放在MessageQueue中,Post一个Runnable其实是它赋值给Message对象的callback属性。然后再将Message对象放置在消息队列中。 post方法里面就是sendMessage。Handle处理过程中如果callback不为空会先执行。 message.callback.run();//其实还是在原来的线程当中,可以直接更新UI。MessageQueue:消息队列,两个操作,插入(enqueueMessage)和读取(next),内部实现通过一个单链表数据结构来维护。Looper:不停从MessageQueue中查看新消息,有会立即处理没有等待。主线程会内部创建,子线程手动创建 Looper.prepare();//为当前线程创建looper Looper.loop();//开启消息循环 线程不需要使用的时候终止Looper,有方法quit和quitSafely(消息队列中已有消息处理完毕后安全退出) 一个Looper和hander在同一个线程。

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: