2013-01-01 67 views
2

在我正在開發的遊戲中,我想創建一個延遲。延遲我在makeing使用處理程序使用此代碼:暫停和可恢復定時器?

handler.postDelayed(new Runnable() { 
     public void run() { 
       animationDrawable.start(); 

       } 
     },theDelay); 

的問題是,我得到的將會使一切停止,直到你再次恢復做任何一個暫停按鈕。現在即使遊戲暫停,它仍在運行。當我想暫停活動時,我得到了一個布爾值。

我已經使用Thread,TimerTask和Handler搜索瞭解決方案,但是對於這些我已經看到的所有人都警告過這些非安全使用。

如何以安全的方式暫停和恢復此「倒計時」,並且在恢復時無需重新啓動它?

回答

3

如何以安全的方式暫停和恢復此「倒計時」,而不必在恢復時重新啓動它?

  1. 保存啓動時間,當你像這樣開頭的處理器 - 的保存當時pauseTime = System.currentTimeMillis();startTime = System.currentTimeMillis();
  2. 並取消亨德勒
  3. onResume重建具有pauseTime - startTime
事件
+0

我該如何獲得剩下的時間,是不是可以使用removeCallBacks來處理這個事件? – Magakahn

+0

我編輯我的回答 –

+0

創建兩個int,startTime當你開始事件,第二個當你暫停事件,如果我們做數學第二 - startTime =剩下的時間 –