在Android 应用中,主线程是一个特殊的存在,当主线程起来的时候,它默认就会创建一个Looper, 用以同步各种线程任务。
(一)Hander的基础知识:
Hander 机制:是一个多线程异步交流的同步机制。
工作中常见的用途:
(1)在子线程中如何更新UI, 使用主线程的Looper 完成同步。
(2)在子线程中同步消息的处理顺序。
(3) 触发延迟操作。
原理:
(1) Looper 中创建了一个序列(链表结构),用来保存各种需要处理的Message.
Looper中存在一个消息循环,不断的从消息队列里面取出消息然后执行。
(2)Hander 用后这个Looper 的引用,可以通过它往这个序列里添加消息。
(3)Looper和某个线程是通过ThreadLocal 变量绑定在一起的。
(4)处理消息是通过Message 里面的hander 来处理消息的。
(5)Looper.run 在那个线程中运行,handleMessage 就在此线程中运行。
(二)Looper 在主线程的创建逻辑
首先:APP 应用主线程或者UI 线程起来,在main方法中PrepareMainLooper.