Pausar / retomar CountDownTimer Android
É possível pausar um CountDownTimer no Android? Eu estava procurando por boas soluções, mas apenas encontrei algumas maneiras de fazer isso que realmente não gosto. Como apenas salve o tempo restante em uma variável e inicialize um novo CountDownTimer com esses valores.
Esse tipo de solução funciona, mas não ficou tão bom porque estou usando uma barra de progresso circular e um Textview junto com o meu countdownTimer. Foi realmente feio tentar parecer bonito com o CountDown, sem poder "pausar" realmente.
Aqui está o meu código para inicializar o CountDownTimer com um ProgressBar e um TextView.
public void initProgress() {
if (mCountdownProgressBar == null)
mCountdownProgressBar = (CircleProgressBar) findViewById(R.id.progressBar);
mCountDownTime = 30000; //Insert your desire time in Milliseconds here
mCountdownProgressBar.setMaxProgress((int)TimeUnit.MILLISECONDS.toSeconds(mCountDownTime));
mCountDownTimer = new CustomCountDownTimer(mCountDownTime, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.v("Log_tag", "Tick of Progress" + TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
mCountdownProgressBar.setmProgress(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
mTimer.setText(Util.getTimeForTimer(millisUntilFinished, Util.TIME_FORMAT));
}
@Override
public void onFinish() {
mCountdownProgressBar.setmProgress(0);
mTimer.setText(Util.getTimeForTimer(0, Util.TIME_FORMAT));
}
};
mCountDownTimer.start();
}
Com esse código, você poderá definir uma progressBar e uma TextView junto com o CountDownTimer. Para poder pausar e retomar com facilidade, postarei a seguir uma Classe Personalizada para CountDownTimer.