android - 暂停和可恢复计时器?

标签 android timer handler timertask

在我正在开发的游戏中,我想创建延迟。我造成的延迟是使用带有以下代码的处理程序:

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

                }
        },theDelay);

问题是我有一个暂停按钮,它会让一切停止,并且在您再次恢复之前不执行任何操作。目前,即使游戏已暂停,它仍在运行。当我想暂停 Activity 时,我得到了一个改变的 bool 值。

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

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

最佳答案

How can I pause and resume this "countdown" in a secure way, and without having to start it all over again when resuming?

  1. 像这样启动处理程序时保存开始时间 - startTime = System.currentTimeMillis();
  2. onPause内部保存该时间pauseTime = System.currentTimeMillis();并取消hendler
  3. onResume内部使用pauseTime - startTime重新创建事件

关于android - 暂停和可恢复计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110277/

相关文章:

java - 检测变量是否在 XX 秒内未被修改

android - 单个进程的多个 setOnClickListener

android - 苹果 bonjour for android

android - launchFragmentInContainer 无法解析 Android 中的 Activity

java - 如何在for循环中停止handler.postDelayed?

redirect - 如何在 LoginListener 中的 onSecurityInteractiveLogin 方法中重定向 - Symfony2

java - 如何从绘图线程(SurfaceView)调用另一个 Activity

android - 我无法处理错误?

javascript - 如何在 JavaScript 中实现准确的、跨平台的游戏循环?

java - 等待计时器/进程完成后再继续