关键词:消息机制 / Handler
本次笔记梳理了和 Android 的消息机制的知识点。Handler 是 Android 消息机制的上层接口,通过它可以轻松将一个任务切换到 Handler 所在的线程中去执行。Android 的消息机制主要是指 Handler 的运行机制,Handler 的运行需要底层的 MessageQueue 和 Looper 的支撑。 有时候需要在子线程中进行耗时的 I/O 操作,可能是读取文件或者访问网络等,当耗时操作完成之后可能要在 UI 上做一些改变,由于 Android 开发规范的限制,我们并不能在子线程中访问 UI 控件,否则就会触发程序异常,这个时候通过 Handler 就可以将更新 UI 的操作切换到主线程中执行。(所以 Handler 常被开发者用来更新 UI)
ThreadLocal 是一个泛型类 public class ThreadLocal<T>
;
Looper 扮演着消息循环的角色,不停的从 MessageQueue 中查看是否有新消息,如果有新消息就会立刻处理,否则会一直阻塞在那里;
Handler 的工作需要 Looper,没有 Looper 的线程就会报错;通过 Looper.PRepare() 即可为当前的线程创建一个 Looper,接着通过 Looper.loop() 来开启消息循环;quit 会直接退出 Looper,而 quitSafely 只是设定一个退出标记;Looper 必须要有退出,否则 loop 方法就会无限循环下去End.
Note by HF. Learn from 《Android 开发艺术探索》
新闻热点
疑难解答