Handler在post方法中,其实调用的是sendMessageDelay(runnable, 0),然后把Message.callback = runnable;也就是说Runnable对象其实也是以Message对象的方式存到了MessageQueue中了,众所周知的是,每次Looper对象从MessageQueue中取Message的时候,都是首先判断该Message.callback是否为null,如果为null,则再执行Handler中mCallback,如果仍旧为空,则再执行HandlerMessage(msg)。也就是说如果该Message有callback就执行了runnable对象。。。。
Handler.post(Runnable runnable)中的Runnable对象去哪里了?
最新推荐文章于 2024-07-19 16:51:51 发布
文章详细解析了Android中Handler机制如何处理Runnable对象。通过sendMessageDelay方法将Runnable转换为Message对象并存储于MessageQueue中,进而由Looper进行调度执行。
468

被折叠的 条评论
为什么被折叠?



