У меня есть два countdowntimers в моей деятельности. Один набор для обратного отсчета от 10 секунд второй - от 5 секунд. Когда я нажимаю кнопку обратного отсчета, запускается таймер 1. Когда этот таймер заканчивается, я хочу, чтобы таймер2 запустился, проблема в том, что timer2 никогда не подвергается эксцессу.Android два CountDownTimers, выполняющих один за другим
У меня есть 2 локальных var, которые отслеживают, какой таймер выполняется, когда я отлаживаю, я вижу, что правильное значение для этих vars установлено, но все же второй таймер не выполняется.
Вот мой CountdownTimer-класс:
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long startTime, long interval) {
super(startTime, interval);
}
@Override
public void onFinish() {
if (ctHasStarted) {
ctHasStarted = false;
timerValue.setText("00:00:000");
countDownTimer2.start();
ct2HasStarted = true;
}
if (ct2HasStarted) {
ct2HasStarted = false;
timerValue2.setText("00:00:000");
countDownTimer.start();
ctHasStarted = true;
}
}
@Override
public void onTick(long millisUntilFinished) {
int secs = (int) (millisUntilFinished/1000);
int mins = secs/60;
secs = secs % 60;
int milliseconds = (int) (millisUntilFinished % 1000);
if (ctHasStarted)
timerValue.setText(String.format("%02d",mins) + ":"
+ String.format("%02d", secs) + ":"
+ String.format("%03d", milliseconds));
if (ct2HasStarted)
timerValue2.setText(String.format("%02d",mins) + ":"
+ String.format("%02d", secs) + ":"
+ String.format("%03d", milliseconds));
}
}
ctHasStarted и ct2HasStarted являются логические значения для отслеживания того, что таймер работает. Как сказано при отладке, достигаются линии countDownTimer.start() и countDownTimer2.start(). Но текстовое поле для timer2 никогда не обновляется. даже линия timerValue2.setText («00:» 00:00") не работает
инициализирует оба таймеров в моем OnCreate деятельности, как:.
countDownTimer = new MyCountDownTimer(ctStartTime, interval);
countDownTimer2 = new MyCountDownTimer(ct2StartTime, interval);
Другого странного, что я заметил что при изменении строки if (ct2HasStarted) в onTick-событии до еще timerValue2.setText-показывает обратный отсчет. Но после того, как второе время будет завершено, первое не будет выполнено, несмотря на вызов для запуска в первый раз в событии onFinish.
Я думаю, что я пропустите что-то, но я не знаю, чего я пропущу. Какие-либо предложения?