Java 游戏失去焦点后计时器不恢复
我有一个经常性的任务。我以标准方式安排它(Java 游戏失去焦点后计时器不恢复,java,timer,libgdx,Java,Timer,Libgdx,我有一个经常性的任务。我以标准方式安排它(Timer是libgdx之一:com.badlogic.gdx.utils.Timer): 当用户想要暂停游戏时,我调用: Timer.instance().stop(); 暂停任务的执行。当用户恢复游戏时,我调用: Timer.instance().start(); 这很好,但如果用户: 暂停比赛 使游戏失去焦点(例如,通过聚焦不同的窗口) 继续比赛 该任务再也不会被触发。有没有办法解决这个问题 更新 我在libgdx中将此问题作为一个可能的
Timer
是libgdx
之一:com.badlogic.gdx.utils.Timer
):
当用户想要暂停游戏时,我调用:
Timer.instance().stop();
暂停任务的执行。当用户恢复游戏时,我调用:
Timer.instance().start();
这很好,但如果用户:
我在
libgdx
中将此问题作为一个可能的bug打开:事实证明,这确实是libgdx中的一个bug。过去是,现在这个问题消失了(我使用的是libgdx
1.6.2-SNAPSHOT版本)
感谢libgdx的伟大团队 是否覆盖onSaveInstanceState()和onRestoreInstanceState()?您可能需要重新安排还原时的任务。Timer.schedule在onCreate或onStart中也会发生吗?如果它在onStart中,您可能会认为它会在重新启动时被重新调度。@JimW目前不会覆盖这些方法。我正在试图了解这是不是一个
libgdx
问题,或者我没有像我应该的那样使用计时器。你可能会阅读一些关于Android生命周期的文章。你的应用程序应该准备好保存它的内部状态(如果你有),以防设备想要调出你的应用程序和/或使另一个应用程序聚焦。@JimW这个问题不是android特有的。我在MacBook上运行游戏时遇到的问题。这就是为什么我怀疑它与Android的生命周期有关。@user2016436您应该写一个自己的答案,并标记为已被未来读者接受。:)
Timer.instance().start();