Handler
Handler :把消息push到消息队列中
Message:消息
MessageQueue:消息队列
looper:管理当前现场的消息队列,有消息就取出
机制:handler负责发送和接受looer返回的消息,并处理相应逻辑.looper负责接受handler发送的消息,并把消息传递给handler自己.message是消息,messageQueue是一个容器
流程:Looper.prepare创建looper.looper的构造方法中创建MessageQueue.调Looper.loop轮询Messagequeue中的Message,调message.target的dispatchMessage处理消息.handler构造中获取looper,找到Messagequeue绑定,调sendMessage发送消息.
源码:
handler:构造获取looper对象和messageQueue对象
sendMessage:所有发送方法最后走sendMessageAtTime,Message和uptimeMillis时间参数,消息,时间,queue三个参数传递到enqueueMessage方法中.把当前handler绑定message.target,调Messagequeue的enqueueMessage方法让消息入队
looper.loop:通过死循环把消息逐个取出(MessageQueue.next)取出后通过handler的dispatchMessage方法在handlerCallback或handlerMessage处理消息
AsyncTask:抽象类,对Thread封装并加入了一些新方法,定义了三种泛型参数