Can anybody here help me with this code? It's working but when the countdown timer is finished it closes down my apps. I want it to display "finish" on text. But the coding for onFinish
that I have used seems not workable.
public class SimpleCountdowTimer extends CountDownTimer {
public static int oneSecond = 1000;
TextView statusTextView;
ProgressBar mprogressBar, mprogressBar1;
Button startTimerButton;
Button stopTimerButton, pauseTimerButton, resumeTimerButton;
private long timeRemaining = 0;
public SimpleCountdowTimer(long millisInFuture, long countDownInterval,
TextView statusTextView, ProgressBar mprogressBar, ProgressBar mprogressBar1) {
super(millisInFuture, countDownInterval);
this.statusTextView = statusTextView;
this.mprogressBar1 = mprogressBar1;
this.mprogressBar = mprogressBar;
}
@Override
public void onTick(long millisInFuture) { //do something in every tick
//Put count down timer remaining time in a variable
statusTextView.setText(String.valueOf(millisInFuture/ oneSecond));
long millis = millisInFuture;
timeRemaining = millisInFuture;
long countDownInterval = 1000;
mprogressBar1.setProgress((int) (millisInFuture));
//Convert milliseconds into hour,minute and seconds
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
statusTextView.setText(hms);//set text
}
@Override
public void onFinish() {
statusTextView.setText("00:00:00");
mprogressBar.setVisibility(View.VISIBLE);
mprogressBar1.setVisibility(View.VISIBLE);
//Disable the pause, resume and cancel button
pauseTimerButton.setEnabled(false);
resumeTimerButton.setEnabled(false);
stopTimerButton.setEnabled(false);
//Enable the start button
startTimerButton.setEnabled(true);
}
}