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时,减少集合的数量

因此,它将一个接一个地运行

希望能有帮助