gpt4 book ai didi

android - CountDownTimer 未取消 --- 在 Cancel() 后继续运行

转载 作者:行者123 更新时间:2023-12-05 00:21:55 28 4
gpt4 key购买 nike

我在我的代码中实现了一个 CountDownTimer,如下所示: 在类的顶部,我创建

CountDownTimer myTimer;

然后当用户按下开始按钮时,会调用以下方法:
private void countme() 
{
final int tick = 500;
final int countTime = 10000;

myTimer = new CountDownTimer(countTime, tick) {

@Override
public void onTick(final long millisUntilFinished) { }

@Override
public void onFinish() {
myPicture.setVisibility(View.GONE);
}
};

myTimer.start();
}

我有按钮停止所有 myTimer.cancel() .可以看到,如果定时器没有取消,myPicture 就会消失。

即使我单击停止按钮以调用 myTimer.cancel()(我使用日志语句检查了这一点),计数器仍会继续倒计时并在完成后使图片消失。

为什么停不下来?我如何让它真正取消?

澄清一下,我确实知道如何实现 Runnable 计时器,但它们不像 CountDownTimers 那样满足我的需求,这就是我在这种情况下不使用它们的原因。

最佳答案

经过多次尝试,诀窍是在 onCreate 中声明计时器,但在其他方法中启动和取消它。 onFinish() 取消定时器后不会调用。

    myTimer = new CountDownTimer(COUNT_DOWN_TIME, TICK) {
@Override
public void onTick(final long millisUntilFinished) {

((TextView) findViewById(R.id.textView3)).setText(""
+ millisUntilFinished);
}

@Override
public void onFinish() {
findViewById(R.id.timer_imageBiew).setVisibility(View.GONE);
}
};



private fun startTimer() {
myTimer .start()
}

private fun stopTimer() {
myTimer .cancel()
}

关于android - CountDownTimer 未取消 --- 在 Cancel() 后继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com