Handler机制源码解析
不多废话 , 上图 : 简单来说 handler 流程就是 handler 在消息池中获取 msg 并发送给 MQ , 再由 Looper 进行轮询在 MQ 中得到待处理的 msg 交由 handler 进行 handleMessage(...); 这里主要涉及到了四个核心类 : Message Handler MessageQueue Looper 那么下面来看看源码里面是怎么实现的 : 1. Message 类 : 用来携带数据的载体 public int what; // 标识 public int arg1; // 携带 int 类型数据 public int arg2; // 携带 int 类型数据 public Object obj;// 携带任意对象数据 long when; // 保存要被处理的时间点 Handler target; // 处理消息的 handler Runnable callback; // 处理消息的回调器对象 Message next; // 用来保存引用的下一个 message( 才能形成链表 ) private static Message sPool; // 存储处理过的消息的池 // 在需要 Message 对象时复用 其中还有recycle()方法 Looper轮询过程中中会用到 2. Handler 类 : 进行消息的发送处理 ,