【发布时间】:2020-06-18 02:51:11
【问题描述】:
对于我一直在使用的任何必须延迟的任务:Handler.postDelayed(Runnable r,Long Delay),但我最近才看到文档,上面写着:
使 Runnable r 添加到消息队列中,在经过指定的时间后运行。可运行对象将在附加此处理程序的线程上运行。时基是 SystemClock.uptimeMillis()。在深度睡眠中花费的时间会增加执行的额外延迟。
我对此有两个困惑:
-
延迟是通过将
Runnable添加到MessageQueue来实现的 在指定的延迟时间之后?或者,
Runnable是否立即添加,函数延迟 一个指定的时间。如果是这样,则必须有机制使 Runnable 被出列并放在其他地方,以便其他项目进入 可以处理队列。 Runnable 是如何延迟的,又是如何延迟的 在此延迟期间维护的MessageQueue?
【问题讨论】:
-
只是一个猜测:2. 当可运行对象到达队列的前面时,它的执行时间会被评估,如果它在将来它被发布回队列的后面
标签: java android multithreading