https://juejin.im/entry/57fb3c53128fe100546ea4f2
- 我们如何在子线程更新UI?——使用Handler机制传递消息到主线程(UI线程)
- 为什么我们不在子线程更新UI呢?——因为Android是单线程模型
- 为什么要做成单线程模型呢?——多线程并发访问UI可能会导致UI控件处于不可预期的状态。如果加锁,虽然能解决,但是缺点也很明显:1.锁机制让UI访问逻辑变得复杂;2.加锁导致效率低下。
-
线程的分类
-
带有消息队列,用来执行循环性任务(例如主线程、android.os.HandlerThread)
-
没有消息队列,用来执行一次性任务(例如java.lang.Thread)
四大要素
-
Message(消息)
-
MessageQueue(消息队列)
-
Looper(消息循环)
-
Handler(消息发送和处理)·