有没有办法连续循环倒数计时器?我有一个基本计时器,可以运行 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/