在Android中使用Handler不仅可以直接post
发送消息,还可以通过postDelayed
设定延迟时间,来延迟执行消息任务。那么这后面的机制是如何处理的呢?
首先查看Handler的源码,会发现post
和postDelayed
内部均调用的同一方法sendMessageDelayed
:
public final boolean post(Runnable r)
{
return sendMessageDelayed(getPostMessage(r), 0);
}
public final boolean postDelayed(Runnable r, long delayMillis)
{
return sendMessageDelayed(getPostMessage(r), delayMillis);
}
在这里的不同是当调用post时,延迟时间传入的是0