2013-08-04 170 views
3

我正在製作一款需要倒數計時器的遊戲。Android遊戲倒數計時器

我需要能夠暫停計時器,恢復倒計時,並添加一些時間到當前的倒計時狀態。

我看過CountdownTimer類和它的方法,但它似乎沒有所需的功能。

我需要建議 - 哪種組件最適合這種情況?

如何使用它?

有什麼可能的問題?

ThreadAsyncTaskTimer

有沒有人有這方面的經驗?

回答

2

我覺得線程可以使用,但其更容易實現使用CountdownTimer包裝類的功能:

static class MyCountdownTimer { 

    long mCurrentMilisLeft; 
    long mInterval; 
    CountdownTimerWrapper mCountdownTimer; 

    class CountdownTimerWrapper extends CountDownTimer{ 
     public CountdownTimerWrapper(long millisInFuture,long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
     } 

     @Override 
     public void onFinish() { 

     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
      mCurrentMilisLeft = millisUntilFinished; 
     } 

    } 

    public MyCountdownTimer(long millisInFuture, long countDownInterval) {   
     set(millisInFuture,countDownInterval); 
    } 

    public void pause(){ 
     mCountdownTimer.cancel(); 
    } 

    public void resume(){ 
     mCountdownTimer = new CountdownTimerWrapper(mCurrentMilisLeft, mInterval); 
     mCountdownTimer.start(); 
    } 

    public void start(){ 
     mCountdownTimer.start(); 
    } 

    public void set(long millisInFuture, long countDownInterval){ 
     mInterval = countDownInterval; 
     mCurrentMilisLeft = millisInFuture;   
     mCountdownTimer = new CountdownTimerWrapper(millisInFuture, countDownInterval); 
    } 

}