我有自动启动的android倒计时器。我需要暂停并恢复它。我见过其他解决方案,但他们没有工作。我的代码是:
class Timer extends CountDownTimer
{
public Timer(long millisInFuture, long countDownInterval)
{
super(millisInFuture, countDownInterval);
timerTimedOut = false;
}
@Override
public void onFinish() {
if(timerTimedOut){
doSTH();
} else {
doSTHElse();
}
this.start();
}
@Override
public void onTick(long millisUntilFinished)
{
timerShow.setText(Long.toString(millisUntilFinished / 1000));
}
public void stop(){
timerTimedOut = true;
this.cancel();
onFinish();
}
}
我该怎么做才能暂停和恢复它?
答案 0 :(得分:2)
我一直在处理这个问题,在尝试了很多事情之后,我找到了这个解决方案。在这里,您可以找到Android CountDownTimer类的绝佳替代方案: https://gist.github.com/bverc/1492672
您只需创建一个名为CountDownTimer2的新类,然后粘贴该代码即可。然后,使用它而不是正常的CountDownTimer类,例如:
CountDownTimer2 cdt = new CountDownTimer2(30000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
//Whatever you want to do onTick
}
@Override
public void onFinish() {
Log.i(TAG, "Timer finished");
}
};
cdt.start();
}
那么你只需传递
cdt.pause();
或
cdt.resume();
希望它有所帮助。