android - 我想让一个倒数计时器在 android 中连续循环 - 需要关于如何做的意见

标签 android loops timer countdown continuous

有没有办法连续循环倒数计时器?我有一个基本计时器,可以运行 60 秒,然后更新文本字段并且它可以正常工作,但我想添加功能:倒计时时,自动重新启动直到用户取消它?也许通过线程运行它?不确定如何处理。这是我所拥有的,同样,这段代码有效,但我只能停止和启动倒数计时器,而不是连续循环:

cdt = new CountDownTimer(60000,1000) {
    public void onTick(long millisUntilFinished) { 
        tvTimer.setText("remaining : " + millisUntilFinished/1000 + " secs");
    }
     public void onFinish() { 
       tvTimer.setText("");
       bell.start(); 
     }
 };

 /***************On Click/Touch Listeners*******************/
 btnNext.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        tvTimer.setText("");
        btnStart.setText("Start Timer");
        SetImageView2(myDbHelper); 
        cdt.cancel(); 

       }
    });

    btnStart.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        if (!TimerTicking){ 
          cdt.start();
          btnStart.setText("Stop Timer");
        }
        else { 
            tvTimer.setText("");
            cdt.cancel();
            btnStart.setText("Start Timer");

        }
       }
    });

最佳答案

循环 CountDownTimer 的一种非常基本的方法是调用 start()onFinished() .

public void onFinish() {
    ...
    start();  // Start this timer over
}

(确保在执行此操作时取消 onPause() 中的 CountDownTimer,否则计时器可能会泄漏并继续在后台触发...糟糕。)

但是 CountDownTimers 有根本性的缺陷(在我看来):它经常跳过对 onTick() 的最后一次调用每次都会增加几毫秒 onTick()被称为... :( 我在 previous question 中重新编写了 CountDownTimer 以更加准确并调用 every tick。

关于android - 我想让一个倒数计时器在 android 中连续循环 - 需要关于如何做的意见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13427134/

相关文章:

android - 从 URI 加载图像作为布局背景

java - 在 Android 中使用 javaagent

android - arm-linux-androideabi编译器使用方法

r - 如何避免在R中出现循环?

c - Stm32时基中断(无需任何库)

java - 通过单击按钮创建 Imagebutton 的新实例

python - Python 中的同时循环

loops - 循环遍历表并在 SAS 中加入它们

ios - 因 NSException 类型的未捕获异常而终止 Timer Swift 崩溃

python - 计时器未重置