В основном я делаю функцию кардио и имею три таймера обратного отсчета подряд, вложенные друг в друга, поэтому, когда один таймер заканчивается, начинается следующий. Один для времени подготовки, один для времени тренировки и один для времени отдыха, пользователь выбирает время.Таймер обратного отсчета не зацикливается
Мне нужно, чтобы он зацикливался, но много раз пользователь выбирает из numberpicker, но независимо от того, что я делаю, он проходит один раз один раз и не зацикливается, поэтому я знаю, что все это работает, это всего лишь часть цикла, т работы.
Я что-то упустил? Есть лучший способ сделать это?
//Main countdown timers loop
for(int i = 0; i <= times.getValue() + 1; i++) //times NumberPicker
{
prepCountTimer = new CountDownTimer(_finalPrep * 1000, 1000) {
public void onTick(long millisUntilFinished) {
tvRoundCount.setText("Round " + roundCount + "/" + times.getValue());
tvCountDown.setText((millisUntilFinished/1000) + "s");
if(millisUntilFinished <= (6 * 1000))
{
tvCountDown.setTextColor(Color.RED);
}
}
public void onFinish() {
workoutCountTimer = new CountDownTimer(_finalWorkout * 1000, 1000) {
public void onTick(long millisUntilFinished) {
tvCountDown.setTextColor(Color.GREEN);
tvCountDown.setText((millisUntilFinished/1000) + "s");
if(millisUntilFinished <= 6 * 1000)
{
tvCountDown.setTextColor(Color.RED);
}
}
public void onFinish() {
restCountTimer = new CountDownTimer(_finalRest * 1000, 1000) {
public void onTick(long millisUntilFinished) {
tvCountDown.setTextColor(Color.GREEN);
tvCountDown.setText((millisUntilFinished/1000) + "s");
if(millisUntilFinished <= 6 * 1000)
{
tvCountDown.setTextColor(Color.RED);
}
}
public void onFinish() {
roundCount = roundCount + 1;
}
}.start();
}
}.start();
}
}.start();
}
Как бы это сделать? Я не понимаю, почему это не будет просто повторяться x раз в соответствии с тем, что выбрал пользователь ... – user1875797
Я отредактировал свой ответ, чтобы показать, как вы можете это сделать. – Eluvatar