Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LibGDX定时器不';在android上恢复游戏后,无法启动_Java_Android_Timer_Libgdx - Fatal编程技术网

Java LibGDX定时器不';在android上恢复游戏后,无法启动

Java LibGDX定时器不';在android上恢复游戏后,无法启动,java,android,timer,libgdx,Java,Android,Timer,Libgdx,我在代码中创建了两个计时器。一个是每0.017秒更新一次逻辑的逻辑定时器: logicTimer = new Timer(); logicTimer.scheduleTask(new Timer.Task() { @Override public void run() { updateLogic(); } }, 0f, timePerProcessing); 另一种是每3秒产生一次障碍物: meteoroi

我在代码中创建了两个计时器。一个是每0.017秒更新一次逻辑的逻辑定时器:

logicTimer = new Timer();
    logicTimer.scheduleTask(new Timer.Task() {
        @Override
        public void run() {
            updateLogic();
        }
    }, 0f, timePerProcessing);
另一种是每3秒产生一次障碍物:

meteoroidTimer = new Timer();
    meteoroidTimer.scheduleTask(new Timer.Task() {
        @Override
        public void run() {
            generateMeteoroids();
        }
    },1f,3f);
当我暂停比赛并在比赛结束后继续比赛时,我的逻辑计时器仍然工作,但障碍计时器却不工作。我认为这是因为我在方法中使用了随机对象,我调用了计时器,但我尝试了一个简单的方法:

System.out.println("It is showing");
但它仍然没有恢复

我的暂停和恢复代码:

@Override
public void pause(){
    meteoroidTimer.stop();
    logicTimer.stop();
}

@Override
public void resume(){
    meteoroidTimer.start();
    logicTimer.start();
}

你不需要使用timer.stop和star-on-resume,因为当你离开应用程序时,libgdx会停止渲染/更新,所以你的计时器不会被更新。

你是说暂停游戏还是暂停活动?这可能是两件完全不同的事情。对不起,我对android有点陌生,但只有当我按下手机右侧的按钮时,游戏才会暂停,并显示其他打开的应用程序。你介意我问一下,你为什么要使用计时器(在渲染线程中使用单独的线程)而不是跟踪增量时间并在渲染线程上触发这些操作?因为我知道渲染方法取决于硬件频率。这就是为什么我要用计时器来获取经过的确切时间。我不知道如何用delta time这样的方式来做。这听起来像是一个在
libgdx
中已知的方法。您确定使用的是最新的
libgdx
版本吗?