Я делаю шахматные часы, но в нем мне нужна задержка (как и до 10 секунд до подсчета). Я использовал обработчик для него, но если нажата кнопка за 10 секунд, ничего не происходит. Пожалуйста помоги! Благодаря! Мой код:Задержка для таймера CountDown - Android
mHandler.postDelayed(new Runnable() {
public void run() {
// count down timer start
timer2 = new CountDownTimer(totalSeconds, Integer.parseInt(delay.getText().toString())) {
public void onTick(long millisUntilFinished) {
secondsTimer = (int) (millisUntilFinished/1000) % 60;
minutesTimer = (int) ((millisUntilFinished/(1000 * 60)) % 60);
hoursTimer = (int) ((millisUntilFinished/(1000 * 60 * 60)) % 24);
person2.setText(hoursTimer + ":" + minutesTimer + ":" + secondsTimer);
}
public void onFinish() {
person2.setText("Time Up!");
person2.setBackgroundColor(Color.RED);
mp.start();
}
}.start();
}
}, finalDelay);
Я хочу задержку, но я не хочу, чтобы заблокировать интерфейс и сделать приложение не отвечает, как это делает сейчас с обработчиком. Любая помощь будет оценена! Заранее спасибо!
Спасибо, ответ выглядит полезным, но вы могли бы объяснить, что происходит в методе 'startHandlerAfterWaited10Seconds()' Я получил ваш ответ, хотя для того, чтобы найти его полезным! –
Hi Kharbanda, Метод, о котором вы говорили, действует как таймер обратного отсчета. И причина, по которой я предлагаю вам использовать Handler вместо класса таймера CountDown, это: - Обработчик должен иметь лучшую производительность, чем класс таймера CountDown. Вы можете найти полезную ссылку здесь http://stackoverflow.com/questions/35497844/handler-postdelayedrunnable-vs-countdowntimer Кроме того, таймер CounDown фактически реализовал обработчик в своем ядре. –
Хорошо Спасибо! Я нашел ваше объяснение полезным, а также веб-сайт! Большое спасибо. Но чтобы убедиться, таймер обратного отсчета - это метод 'startHandlerAndWait10Seconds()' right? –