美文网首页
view.postDelayed()不执行的原因。

view.postDelayed()不执行的原因。

作者: pdog18 | 来源:发表于2018-09-30 09:51 被阅读28次

    如果在执行view.postDelayed()之前,viewremove了。那么View#postDelayed()就会因为View#mAttachInfonull,而将action发送到View#getRunQueue()也就是View#mRunQueue中。

    mRunQueue中存放的Runnable(会被包装成HandlerAction 对象)将在何时被执行?

    答案是View#dispatchAttachedToWindow, 顾名思义,会等待View被添加到window时,才会被执行,所以如果你的viewremove了,那么你postDelayed()action 就会等到下次被AttachedToWindow 的时候才会被执行了。

    相关文章

      网友评论

          本文标题:view.postDelayed()不执行的原因。

          本文链接:https://www.haomeiwen.com/subject/kutsgftx.html