我在制作计时器的Android Studio中遇到问题

时间:2019-03-16 14:35:20

标签: java android timer countdowntimer

在应用程序中,我重新打开了计时器所在的活动。第一次使用计时器,但此后它开始在随机时间调试运行onFinish()。我该如何解决?

new CountDownTimer(10000, 1000) {
    public void onTick(long millisUntilFinished) {
        textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
    }
    public void onFinish() {
        wrongAnswer();
    }
}.start();

1 个答案:

答案 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();
}