我回来问另一个问题:)
在我正在制作的应用中,我需要一个选择器来选择4个不同倒数计时器中的一个,例如round1,round2等。
但我有两个相同来源的问题。使用默认的countdowntimer实现,它不涉及将其命名为round1但作为直接倒数计时器运行,我可以在onPause中使用
取消它
coutdowntimer.cancel();
但在将它命名为round1后,我再也无法暂停它和round1.cancel();出现未定义。
我已经度过了昨天的大部分时间,直到凌晨3点试图找到一个解决方案,我认为我通过让我的计时器最终完成它但它仍然无法工作。
在考虑了这个问题之后,一旦我解决了这个问题,我就不得不在我的onpause中实现一个if语句,为了保持我的代码干净,我宁愿不这样做。
有没有办法实现一个通用取消命令来取消root countdowntimer函数,无论它运行的实际名称如何。 例如
public void canceltimers(){
//if round1,2,3,4 is runnng, cancel the main countdowntimer thread altogether.
countdowntimer.Cancel();
}
感谢任何帮助,这是我当前的计时器代码。
CountDownTimer round1 = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textview4.setText("" + millisUntilFinished / 1000);
}
public void onFinish() {
endsequence();
}
};
CountDownTimer round2 = new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {
textview4.setText("" + millisUntilFinished / 1000);
}
public void onFinish() {
endsequence();
}
};
// round1.start();
我还没有为级别选择实现我的if语句,但是会与此类似
if (level == 1){
round1.start();}
if (level == 2){
round2.start();}
到目前为止,我已经尝试将其设为最终版,没有任何乐趣。 我试过了
round1.cancel();
没有快乐。以及我能想到或发现的倒计时器的每一个实现。
现在作为一个请求,我不像你们大多数人那样令人惊讶,所以如果你能尝试给出一个实现的例子,那将是值得赞赏的,感谢您的关注和感谢您的时间和帮助
菲尔
答案 0 :(得分:0)
制作一个计时器。向此计时器添加多个timertasks。定义COUNTDOWN_TIME。
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
//execute code when the COUNTDOWN_TIME has ran out.
}
}, COUNTDOWN_TIME);
}
//cancels all sceduled/running TimerTasks
mTimer.cancel();