Проблема в CountDownTimer
Помогите плиз, вообще не выкупаю, что за проблема, но команда выполняется явно не при наступлении onFinish(). описал проблему в коде:
public void CoolDown(long dur){ // на вход поступает время таймера
blockButton(true); //нормально выполнятся
CountDownTimer t = new CountDownTimer(dur, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
runOnUiThread(new Runnable() {
@Override
public void run() {
blockButton(false); //выполняется явно раньше, чем должен пройти таймер
if(anyone_die){
try {
t("Кто-то не выдержал нагрузки....", Toast.LENGTH_SHORT);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
};
t.start();
Спасибо!
Ответы (2 шт):
Автор решения: DrMcSheen
→ Ссылка
public void CoolDown(long dur){ // на вход поступает время таймера
blockButton(true); //нормально выполнятся
CountDownTimer t = new CountDownTimer(dur, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
blockButton(false); //выполняется явно раньше, чем должен пройти таймер
if(anyone_die){
try {
t("Кто-то не выдержал нагрузки....", Toast.LENGTH_SHORT);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
Автор решения: StudyAndroid
→ Ссылка
Проблема заключалась в том, что я поверх 1 таймера (с нормальной задержкой) запускал 2 таймер с малой, соответственно срабатывала малая задержка и функция вызывалась по прохождении 2-го таймера.