Si alguna vez nos hemos visto en la situación de tener que realizar una cuenta atrás en nuestra aplicación Android (muy útil para juegos, para indicar el tiempo restante) seguramente habremos hecho uso de la clase típica para estas cosas en Java: TimerTask (java.util.TimerTask)
private TimerTask getTimerTask() {
return new TimerTask() {
@Override
public void run() {
// Aquí hacemos todo
} catch (Exception e) {
e.printStackTrace();
schedule(NOW);
}
}
};
}
Deberíamos modificar bastante esa clase para que llevara una cuenta regresiva de los segundos que quedan, así como hacer un schedule cada segundo de la task.
En vez de esto, resulta mucho más elegante utilizar una clase que provee Android llamada CountDownTimer. Tan fácil como hacer lo siguiente:
timer = new CountDownTimer(secondsUntilFinished, 1000) {
public void onTick(long millisUntilFinished) {
// Do something every second
}
@Override
public void onFinish() {
// Do something when finished
}
}.start();