暂停和可恢复的计时器?

时间:2013-01-01 12:05:51

标签: android timer handler timertask

在我正在开发的游戏中,我想创建一个延迟。我做的延迟是使用这个代码的处理程序:

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

                }
        },theDelay);

问题是我有一个暂停按钮,它会使一切停止,在你再次恢复之前不做任何事情。现在,即使游戏暂停,它也在运行。当我想暂停活动时,我得到了一个更改的布尔值。

我已经使用Thread,TimerTask和Handler搜索了解决方案,但是对于其中的每个人,我都看到了关于这些解决方案的安全使用的警告。

如何以安全的方式暂停和恢复此“倒计时”,并且在恢复时无需重新启动它?

1 个答案:

答案 0 :(得分:3)

  

如何以安全的方式暂停和恢复此“倒计时”,而不必在恢复时重新开始?

  1. 保存启动此类处理程序的开始时间 - startTime = System.currentTimeMillis();
  2. onPause内保存时间pauseTime = System.currentTimeMillis();并取消hendler
  3. onResume内,使用pauseTime - startTime
  4. 重新创建活动