2015-01-01 166 views
3

我是Android開發新手,嘗試製作小遊戲。 CountDownTimer.cancel()不適合我。CountDownTimer取消()不工作

任何想法?

謝謝您的答覆!

CountDownTimer cdt = new CountDownTimer(120000, 1000) { 

      public void onTick(long millisUntilFinished) { 
       maxTime = (int) (millisUntilFinished/1000); 
       timer.setText(String.valueOf(maxTime)); 
      } 

      public void onFinish() { 

      } 
     }; 

     if (startTimer == true) { 
      cdt.start(); 
     } else { 
      cdt.cancel(); 
     } 
+0

請提供完整的代碼,什麼是'startTimer'?它的價值是什麼?什麼時候改變了? – gio

+0

你會得到什麼樣的異常? Pl提供完整的代碼以及任何異常情況下的logcat跟蹤。 –

+0

嗨吉奧,謝謝你的答案。這裏是完整的方法。我不會例外。當它調用cancel()方法;一無所有。 :( –

回答

7

我必須在這裏做一個假設,因爲代碼不會顯示太多!顯然你在onCreate裏面使用countDownTimer作爲內部類,這樣當startTimer == true就會觸發定時器,它會創建對象而不管它是什麼!我想最好是創建一個CountDownTimer的全局實例。

而寫這樣的代碼:

if(startTimer == true) { 
    cdt = new CountDownTimer(120000, 1000) { 
     public void onTick(long millisUntilFinished) { 
      maxTime = (int) (millisUntilFinished/1000); 
      timer.setText(String.valueOf(maxTime)); 
     } 

     public void onFinish() { 

     } 
    }.start(); //start the countdowntimer 
} 
else{ 
    cdt.cancel(); 
} 
+0

嗨艾哈邁德 它工作! 謝謝x! –

+0

沒問題,很高興我可以幫助 –

+0

感謝上帝,你是最好的......我正要放棄這個..... – jayz