2013-01-01 69 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 =剩下的时间 –