2011-12-22 59 views
1

我不明白如何pausecounterdowntimer。我有一個公共countdowntimer:android countdowntimer wait

public CountDownTimer myTimer = new CountDownTimer(300000, 1000) { 
    public void onTick(long millisUntilFinished) { 
     ... 
     setCurrentTime(currentTime); 
    } 
    public void onFinish() { 
     setCurrentTime("0"); 
    } 
}; 

我可以.start().cancel()通過buttonclick,但我不能.wait()開發文檔

此方法只能由擁有此對象的監視器的線程調用;請參閱notify()有關線程如何成爲監視器的所有者的信息。

這是什麼意思?

我試着將millisUntilFinished保存在一個變量中,但是如何從該值重新啓動timer

有沒有其他解決方案?

回答

0

除非當前線程擁有該對象的顯示器,否則不能等待()對象。爲此,您必須對其進行同步。

+0

我該如何同步它? – 2011-12-23 07:49:59

1

你可以實現一個全局變量如private Boolean pauseTimer=false;然後檢查onTick如果變量是真的 - 如果是則調用SystemClock.sleep()

+0

does systemclock.sleep()延遲開發時鐘? – 2011-12-23 07:53:27

+0

它暫停了線程,所以線程在給定的時間內不會執行任何操作。 – Force 2011-12-23 10:09:18

+0

這只是一個延遲,它問我一個延遲時間。暫停時如何保持暫停狀態? – 2011-12-24 14:15:59