在应用程序中,我重新打开计时器所在的相同活动。第一次计时器工作,但之后它开始在随机时间窃听运行onFinish()
。我该如何解决这个问题?
new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
wrongAnswer();
}
}.start();
您必须在计时器中存储CountDownTimer并在移动到另一个活动或片段时取消它;
创建CountDownTimer
作为全局变量(on onCreate)
CountDownTimer timer;
初始化计时器,您希望在何处启动计时器
timer = new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
wrongAnswer();
}
}.start();
并在onDestroy
取消它
@Override
protected void onDestroy() {
if(timer != null) timer.cancel();
super.onDestroy();
}