Пауза / Возобновить CountDownTimer Android
Можно ли приостановить CountDownTimer в Android? Я искал хорошие решения, но я просто нахожу некоторые способы сделать это, которые мне действительно не нравятся. Так же просто сохраните оставшееся время в переменной и инициализируйте новый CountDownTimer с этими значениями.
Такие решения работают, но они не выглядят так хорошо, потому что я использую круговую индикаторную строку и Textview вместе с моим countdownTimer. Было действительно уродливо пытаться выглядеть так, чтобы эти двое выглядели хорошо с CountDown, не будучи в состоянии действительно "приостановить" это.
Вот мой код для инициализации CountDownTimer с помощью ProgressBar и 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();
}
С помощью этого кода вы сможете установить progressBar и TextView вместе с вашим CountDownTimer. Чтобы сделать паузу и возобновить ее довольно легко, я опубликую следующий пользовательский класс для CountDownTimer.