在应用程序中,我重新打开了计时器所在的活动。第一次使用计时器,但此后它开始在随机时间调试运行onFinish()
。我该如何解决?
new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
wrongAnswer();
}
}.start();
答案 0 :(得分:0)
必须将CountDownTimer存储在计时器中,并在移至另一个活动或片段时将其取消;
将CountDownTimer
创建为全局变量(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();
}