Java 循环倒计时
我试图通过倒计时循环几次,但问题是循环在计时器完成之前完成,所以倒计时只运行一次 循环通过计时器的函数Java 循环倒计时,java,android,loops,countdowntimer,Java,Android,Loops,Countdowntimer,我试图通过倒计时循环几次,但问题是循环在计时器完成之前完成,所以倒计时只运行一次 循环通过计时器的函数 private void doWorkout(){ int currentSet = 1; for (int i = 1; i<= NUMBER_OF_SETS; i++){ Log.d(TAG, "doWorkout: iteration " + i); startWorkoutTimer(); //make for lo
private void doWorkout(){
int currentSet = 1;
for (int i = 1; i<= NUMBER_OF_SETS; i++){
Log.d(TAG, "doWorkout: iteration " + i);
startWorkoutTimer();
//make for loop sleep till timer is done
}
}
private void startWorkoutTimer() {
mWorkoutCountDownTimer = new CountDownTimer(START_TIME, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mWorkRestLabel.setText("Work");
mWorkRestLabel.setVisibility(View.VISIBLE);
mTimeLeftInMillis = millisUntilFinished;
updateCountDownText();
}
@Override
public void onFinish() {
mWorkoutTimerRunning = false;
mButtonStartPause.setText("start");
mButtonStartPause.setVisibility(View.INVISIBLE);
mButtonReset.setVisibility(View.VISIBLE);
mWorkRestLabel.setVisibility(View.INVISIBLE);
startRestTimer();
}
}.start();
mWorkoutTimerRunning = true;
mButtonStartPause.setText("pause");
mButtonReset.setVisibility(View.INVISIBLE);
}
private void doWorkout(){
int currentSet=1;
for(int i=1;ifor
循环不会等待倒计时结束。因此它一次启动所有计时器,因此看起来只运行了一次
要解决此问题,而不是循环,您必须在startRestTimer()
中启动一个新计时器(根据您的代码,该计时器在onFinish()
中,并在计时器完成后运行),当集合的数量
为0时,减少集合的数量
因此,它将一个接一个地运行
希望能有帮助