Я работаю над приложением для Android, которое похоже на игру с секундомером.Во всяком случае, на данный момент круговой индикатор выполнения работает правильно, когда запускается и останавливается в первый раз, но после этого круговой индикатор выполнения выходит из строя, и я бы хотел, чтобы он продолжал работать до тех пор, пока не истечет время, независимо от того, прикоснуться ли к кнопке остановки или нет.,Кроме того, кнопка сброса генерирует огромное случайное время при нажатии, когда таймер включен.Любая помощь с благодарностью.
Вот код:
/**
* method to initialize the values for count down timer
*/
/**
* method to start count down timer
*/
private void startCountDownTimer() {
countDownTimer = new CountDownTimer(timeCountInMilliSeconds, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeUntilDone = (int)(millisUntilFinished/1000);
textViewTime.setText(hmsTimeFormatter(millisUntilFinished));
progressBarCircle.setProgress((int) (millisUntilFinished / 1000));
}
@Override
public void onFinish() {
textViewTime.setText(hmsTimeFormatter(timeCountInMilliSeconds));
// call to initialize the progress bar values
setProgressBarValues();
// hiding the reset icon
imageViewReset.setVisibility(View.GONE);
// changing stop icon to start icon
imageViewStartStop.setImageResource(R.drawable.icon_start);
// making edit text editable
editTextMinute.setEnabled(true);
// changing the timer status to stopped
timerStatus = TimerStatus.STOPPED;
pauseClock();
stopWatch.setText("0:00:00");
// stopCountDownTimer();
// stopCountDownTimer();
}
}.start();
if (timerStatus==TimerStatus.STOPPED) {
countDownTimer.start();
}
else{
startClock();
}
}
/**
* method to stop count down timer
*/
private void stopCountDownTimer() {
countDownTimer.cancel();
}
/**
* method to set circular progress bar values
*/
private void setProgressBarValues() {
progressBarCircle.setMax((int) timeCountInMilliSeconds / 1000);
progressBarCircle.setProgress((int) timeCountInMilliSeconds / 1000);
}
/ **
* method to reset count down timer
*/
private void reset() {
startTime = 01; timeInMilliseconds =01; timeSwapBuff = 01; updateTime=01;
stopWatch.setText("0:00:00");
progressBarCircle.setProgress(timeUntilDone);
}