2012-03-06 131 views
0

我在我的應用程序設置有CountDownTimer這樣的:倒計時時鐘方法

new CountDownTimer(11000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     clock.setText("Seconds Remaining: " + millisUntilFinished/1000); 
     secsrem = (int) millisUntilFinished/1000; 
    } 

    public void onFinish() { 
     //...} 
    }.start(); 

我需要訪問onFinish方法的另一種方法在我的應用程序,這樣,當按下一個按鈕,它會調用定時器onFinish方法。我將如何做到這一點?

回答

1

你的計時器只是存儲在一個變量:

public class YourClass { 

public CountDownTimer timer = null; 

... 
timer = new CountDownTimer(11000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      clock.setText("Seconds Remaining: " + millisUntilFinished/1000); 
      secsrem = (int) millisUntilFinished/1000; 
     } 

     public void onFinish() { 
      //...} 
     } 

timer.start(); 
... 

然後,你可以這樣做:

timer.onFinish(); 

順便說一句,我想你不應該叫onFinish自己,它會通過系統調用時時間到了。如果要取消計時器改用:

timer.cancel(); 
+0

我仍然得到一個錯誤,我已經存儲在變量計時器如圖所示,但是當我嘗試並調用timer.onFinish();它說它無法解決。 – nexus490 2012-03-06 14:52:52

+0

我會多解釋一下,我有一個顯示數學表達式的應用程序,用戶有10秒鐘來回答這個問題。當他們按下#鍵時,他們的答案會被檢查並顯示下一個問題,但是如果用戶用完了時間,那麼就會轉到下一個問題。 – nexus490 2012-03-06 14:56:38

+0

確保'timer'變量可以從你調用它的地方訪問。看到我編輯的答案。 – Caner 2012-03-06 15:00:23