嗨,我正在尝试取消On-tick功能中的倒数计时器,它在棒棒糖上工作正常,但在Kitkat及以下版本中却无法正常工作。如何从OnTick()函数中取消它。
private void startTimer(final int minuti) {
countDownTimer = new CountDownTimer(60 * minuti * 1000 + sec * 1000,
500) {
@Override
public void onTick(long leftTimeInMilliseconds) {
CountDownTimer.cancel();
}
@Override
public void onFinish() {
}
}.start();
}
最佳答案
如果以某种方式用自己的countdowntimer.cancel
方法调用CountDownTimer
对象的onTick
,它将无法正常工作!
解决问题的最简单方法是定义另一个CountDownTimer
,与主要的相同,以便检查调用countdowntimer.cancel
的条件。关键是要从其自身的onTick
方法外部调用对象cancel方法。
检查以下示例:
CountDownTimer countdowntimer;
CountDownTimer assist;
long millisuntillfinish = 10000;
int interval = 100;
countdowntimer = new CountDownTimer(millisuntillfinish, interval) {
@Override
public void onTick(long millisUntilFinished) {
// if(true) countdowntimer.cancel(); (doesnt work)
}
@Override
public void onFinish() {
}
};
assist = new CountDownTimer(timertillfinish, timerinterval) {
@Override
public void onTick(long millisUntilFinished) {
if (true) {
countdowntimer.cancel();
}
}
@Override
public void onFinish() {
assist.cancel();
}
};
关于java - 如何计算DownTimer.cancel();在OnTick();中功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35315272/