引言
消息机制是 Android 中重要的线程间通信手段;它的存在可以让一个线程通知另一个线程去工作
众所周知 Handler 在 Android 中的地位非常重要, 从处理异步线程任务队列的 HandlerThread 到从子线程与UI线程的通信, 再到 ActivityThread 中四大组件的 sendMessage 调度, 再到进程间通信与之关联 Messenger 可以说是从头到尾贯穿的整个 Android 系统的枝枝蔓蔓;所以说搞明白,搞懂 Handler 消息运行机制与原理至关重要
下面我们来看一下 Handler 的工作流程图
我们先从 Handler 源码看起吧,下一步看 MessageQueue 源码,最后看 Looper 源码
Handler 工作原理Handler的主要工作是发送消息和接受消息
消息发送过程消息的发送我们可以通过一系列 send 和 post 方法 来看一下这些 send 和 post 方法源码吧
public final boolean sendEmptyMessage(int what)
{
return sendEmptyMessageDelayed(what, 0);
}
public final boolean sendEmptyMessageDelayed(int what, long delayMillis) {
Message msg = Message.obtain();
msg.what = what;
return sendMessageDelayed(msg, delayMillis);
}
public final boolean sendMessage(Message msg)
{
return sendMessageDelayed(msg, 0);
}
public final boolean sendMessageDelayed(Message msg, long delayMillis)
{
if (delayMillis
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?