2013-04-22 5 views
0

Похожие запросы: wait until all threads finish their work in javaКак ждать, пока приложение countDownTimer не закончат

Здравствуйте, Я разрабатываю андроид приложение, которое содержит какой-то таймер обратного отсчета. Моя проблема в том, что у меня есть несколько отсчитывать таймеры, который устанавливает текст TextView и должны работать отдельно (первый отсчет таймера должен ждать, пока второй один не закончен и т.д.)

Смотрите код:

MyCountDownTimer.java

public class MyCountdownTimer extends CountDownTimer { 
TextView tv; 

    // default constructor 
    public MyCountdownTimer (long millisInFuture, long countDownInterval) { 
     super(millisInFuture, countDownInterval); 
    } 

    // constructor 
    public MyCountdownTimer(int hours, int mins, int secs, 
    long countDownInterval, TextView tv) { 
     super(3600000 * hours + 60000 * mins + secs * 1000, countDownInterval); 
     this.tv = tv; 
      // all other settings 
    } 

    // when finished, set text of textview to done 
    @Override 
    public void onFinish() { 
     tv.setText("done!"); 
    } 

    // when working periodically update text of text view to value of time left 
    @Override 
    public void onTick(long millisUntilFinished) { 
tv.setText(/*function setting text of TextView based on time left*/); 
    } 
} 

Timer.java

public class Timer extends Fragment { 
Button bStart; 
Button bStop; 
TextView tvShowTime; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.timer, container, false); 
} 

public void onStart() { 
    super.onStart(); 
    bStart = (Button) getView().findViewById(R.id.bTimerStart); 
    bStop = (Button) getView().findViewById(R.id.bTimerStop); 
    tvShowTime = (TextView) getView().findViewById(R.id.showTime); 
    // setting on button start click 
    bStart.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
      timerStart(); 
     } 
    }); 

    // setting on button stop click 
    bStop.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 
      timerStop(); 
     } 
    }); 
} 
    private void timerStart() { 
     bStart.setClickable(false); 
     int repeat = 2; 
     int hour, mins, secs; 
     for (int i = 0; i < 2 * repeat; i++) { 
      if (i % 2 == 0) { 
       // setting working count down timer values 
       mins = 1; 

      } else { 
       // setting resting count down timer values 
       secs = 30; 
        } 
      timerCount = new MyCountdownTimer(hours, mins, secs, REFRESH_RATE, 
      tvShowTime); 
      timerCount.start(); 
      ////////////////////////////////////////////////// 
      // HERE I WANT TO WAIT UNTIL COUNTDOWN IS DONE // 
      // ATM SECOND, THIRD AND FOURTH COUNT DOWN // 
      //   TIMER IS STARTED     // 
      ////////////////////////////////////////////////// 
     } 
} 

- РЕДАКТИРОВАТЬ -

В конце я сделал 2 CountDownTimers, где первым звонит в onFinish() второй и второй называет первый из них, пока повтор = 0; В финале это было лучшее сокровище для меня. В любом случае спасибо за помощь, ответ @ Триод помог мне много

+0

Помогло ли это? – Triode

ответ

1

Начните SECOND, THIRD AND FOURTH COUNT DOWN TIMER в onFinish() из ваших MyCountdownTimer

0

Я думаю, вы должны положить вниз TimerStop() реализацию метода и не пытаются скрыть , вам нужно ответить, но вы не хотите, чтобы другие болели: s

Смежные вопросы