我最近发现CountDownTimer
的{{1}}排队等到设备被唤醒(或者至少从谷歌群组的某个主题看起来如此)。但是onTick
呢?
我希望不必须处理onFinish
或任何需要处理意图的事情,因为我很难跟踪所需的所有不同参数创建一个意图,意图过滤器等。
AlarmManager
似乎没有使用唤醒锁,所以我不得不假设我不能总是指望CountDownTimer
开火,或者它以不同的方式工作(从我已经读过,有一种比使用唤醒锁更好的方法 - 使用意图。问题是,onFinish
是否隐含地使用意图或其他方法来确保触发?)
答案 0 :(得分:0)
不,它不会唤醒设备。你可以尝试一下,看看。 onFinish实际上是一个在CountDownTimer类中进行decalred的接口:
public abstract void onFinish();
当你启动CountDownTimer时,实际上会发生这种情况:
public synchronized final CountDownTimer start() {
mCancelled = false;
if (mMillisInFuture <= 0) {
onFinish();
return this;
}
mStopTimeInFuture = SystemClock.elapsedRealtime() + mMillisInFuture;
mHandler.sendMessage(mHandler.obtainMessage(MSG));
return this;
}