2

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

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

                }
        },theDelay);

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

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

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

4

1 回答 1

3

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

  1. 像这样启动处理程序时保存开始时间 - startTime = System.currentTimeMillis();
  2. onPause保存那个时间pauseTime = System.currentTimeMillis();并取消亨德勒
  3. 在里面onResume重新创建事件pauseTime - startTime
于 2013-01-01T12:15:16.853 回答