Skip to content Skip to sidebar Skip to footer

Multiple CountDown Timer Running One After Another

this is my first question here. I need to implement in my app six countdown timers running one after another. When first finishes, next one starts and so on. Init time of every sin

Solution 1:

You probably need to break out the start timer functionallity and call it in onFinish().

    public void startTimer(int counterId){
            Counter counter = null;
            switch(counterId){
                    case 0:
                            counter = new CounterOne(counterId,user_input1,1000);
                            break;  
                    /* Counter 1-5  goes here*/
                    default:
                            break;
            }
            if(counter !=null ){
                    counter.start();
            }
    }

then start your next timer in onFinsh()

    public abstract class Counter extends CountDownTimer
    {
            private int counterId;

            public Counter(int counterId /*counter id start with 0*/,long millisInFuture, long countDownInterval)
            {
                    super(millisInFuture, countDownInterval);
                    this.counterId = counterId;
            }

            public abstract void onTick(long millisUntilFinished);

            public void onFinish()
            {
                    playSound(sound_id_1);
                    runMyMethod(user_input_1);
                    startTimer(this.counterId++);
            }

    }

    public class CounterOne extends Counter{
            public void onTick(long millisUntilFinished)
            {
                    //counter 1 logic
            }
    }

    /* Subclass others. eg. CounterTwo etc. */

Solution 2:

You never set

timerHasStarted

to true. It's always false, so...yeah, one timer after another. Set it to true before calling counter.start() and it should work.


Post a Comment for "Multiple CountDown Timer Running One After Another"