CountDownTimer в android - как его перезапустить
I перезапустить CountDownTimer. Я много читал здесь, но ни один из ответов не помог мне.
Когда я использую следующий код
if(Const.counter != null){
Const.counter.cancel();
Const.counter = null;
}
Const.counter = new CustomTimerTask(Const.currentLevel.timeGoal * 1000,1000);
Const.counter.start();
Я запускаю новый счетчик, но старый тоже продолжает работать. Пожалуйста, помогите мне решить эту проблему.
Ответы
Ответ 1
Вы можете реализовать это, отменив и перезапустив. Следующий пример должен работать.
CountDownTimer mCountDownTimer = new CountDownTimer(500, 1000) {
@Override
public void onTick(long millisUntilFinished) {}
@Override
public void onFinish() {
isCounterRunning = false;
}
};
boolean isCounterRunning = false;
private void yourOperation() {
if( !isCounterRunning ){
isCounterRunning = true;
mCountDownTimer.start();
}
else{
mCountDownTimer.cancel(); // cancel
mCountDownTimer.start(); // then restart
}
}
Ответ 2
Я сделал несколько разных трюков. Надеюсь, это поможет вам.
if (myCountDownTimer != null) {
myCountDownTimer.cancel();
}
myCountDownTimer = new MyCountDownTimer(10000, 500);
myCountDownTimer.start();
Ответ 3
таймер остановки для викторины
if(countDownTimer!=null)
{
countDownTimer.cancel();
countDownTimer.start();
}
else {
countDownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long l) {
mtimer.setText("remaining time" + l / 1000);//mtime is a textview
}
public void onFinish() {//here mnext is the button from which we can get next question.
mnext.performClick();//this is used to perform clik automatically
}
}.start();