我在android studio中有制作计时器的问题

问题描述 投票:0回答:1

在应用程序中,我重新打开计时器所在的相同活动。第一次计时器工作,但之后它开始在随机时间窃听运行onFinish()。我该如何解决这个问题?

new CountDownTimer(10000, 1000) {
    public void onTick(long millisUntilFinished) {
        textQuestion.setText("seconds remaining: " + millisUntilFinished / 1000);
    }
    public void onFinish() {
        wrongAnswer();
    }
}.start();
java android timer countdowntimer
1个回答
0
投票

您必须在计时器中存储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();
}
© www.soinside.com 2019 - 2024. All rights reserved.