MessageQueue nextMessage源码分析
2023-01-29 11:49:49 1 举报
MessageQueue nextMessage源码分析
作者其他创作
大纲/内容
mMessages==null(没有消息可处理)
msg.target==null(是否为屏障消息)
nextPollTimeoutMillis = -1
返回msg
处理IdleHandler
是
否
nextPollTimeoutMillis = msg.when - now
循环
msg.when > now
nextPollTimeoutMillis = 0
阻塞唤醒
idleHandler数量>0
msg.markInUse()
Looper.loop()
否mblocked=ture
MessageQueue.next()
这个for循环里实际上做了3个事情:1.通过MessageQueue.next 获取一个消息2.通过hadler.dispatchMessage分发处理消息3.通过message.recycleUnchecked() 做到消息的循环使用
获取第一个异步消息
for()循环
0 条评论
下一页