//Handler中的源码
public final boolean postDelayed(Runnable r, long delayMillis)
{
return sendMessageDelayed(getPostMessage(r), delayMillis);
}
public final boolean sendMessageDelayed(Message msg, long delayMillis)
{
if (delayMillis < 0) {
delayMillis = 0;
}
return sendMessageAtTime(msg, SystemClock.uptimeMillis() + delayMillis);
}
public final boolean postAtTime(Runnable r, long uptimeMillis)
{
return sendMessageAtTime(getPostMessage(r), uptimeMillis);
}
public boolean sendMessageAtTime(Message msg, long uptimeMillis) {
MessageQueue queue = mQueue;
if (queue == null) {
RuntimeException e = new RuntimeException(
this + " sendMessageAtTime() called with no mQueue");
Log.w("Looper", e.getMessage(), e);
return false;
}
return enqu
Android Handler知识学习记录(一)Handler的postDelayed和postAtTime
最新推荐文章于 2022-12-06 03:22:22 发布
本文探讨了Android Handler的postDelayed和postAtTime方法,它们都用于线程执行,通过sendMessageAtTime实现。区别在于postDelayed在内部处理了delayMillis,并基于系统唤醒时间来延迟任务。详细解释了如何使用这两个方法来精确控制线程执行时间,并讨论了在系统休眠等情况下可能存在的问题和解决方案。
摘要由CSDN通过智能技术生成