Handler面试题

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封装并加入了一些新方法,定义了三种泛型参数


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值