!-- flowchart 箭头图标 勿删 --
Message:消息
可理解为线程间通讯的数据单元,可通过Message携带需要的数据
创建对象:Message.obtain(what)
封装数据:
public int what //id标识
public int age1
public int age2
public Object obj
Handler:处理器
Handler是Message的处理器,同时也负责消息的发送和移除工作
发送即时消息:sendMessage(Message msg)
发送延时消息:sendMessageDelayed(Message msg,long time)
处理消息:handlerMessage(Message msg)(回调方法)
移除还未处理的消息:removeMessages(int what)
移除所有未处理的消息:removeCallbacksAndMessage(null)
MessageQueue:消息队列
用来存放通过Handler发送的消息
它是用来按Message的when排序的优先队列
Looper(钩子):循环器
负责循环取出Message Queue里面的当前需要处理的Message
交给对应的Handler进行处理
处理完后将Message缓存到消息池中,已备复用
使用Handler的一般步骤:
1,创建Handler成员变量对象,并重写handleMessage()
2,在分/主线程创建Massage对象
3,使用handle对象发送Message
4,在handleMessage()中处理消息
Message