简介
首先来看一张图,我们就可以清楚的知道Handler的使用背景及作用
从图中我们可以知道,为了解决多线程并发更新UI,导致线程不安全的问题,我们可以将工作线程中需要处理UI的消息通过Handler传递到主线程,由主线程来更新UI
概念
首先来看Handler中涉及到的几个基础概念
名词 | 定义 | 作用 |
---|---|---|
主线程(UI线程) | 应用首次启动时,会自动创建一个主线程 | 操作更新UI |
子线程 | 手动开启的线程 | 处理网络请求、数据加载的动耗时操作 |
Handler | 主线程与子线程的通信媒介&Message的处理者 | 将Message添加到Message Queue&处理Looper分派过来的Message |
Message | 线程间通讯的数据单元(即Handler接受、处理的消息对象) | 存储需操作的通信信息 |
Message Queue | 消息栈,存储Message | 存储Handler发送过来Message |
Looper | Message Queue与Handler的通信媒介 | 消息获取:循环取出Messag Queue中的Message&消息分发:将取出的Message分发给Handler传递给主线程 |
详细内容参考:https://www.codenong.com/cs105994886/ (很详细)