应用程序恢复后计时器停止工作(Android)

时间:2015-08-07 23:09:35

标签: java android timer libgdx onresume

我正在使用三个计时器来触发不同的周期性任务(并非所有的同时启用)。但是,在暂停/恢复应用程序后(通过切换到其他应用程序),某些计时器停止工作。通过网络阅读后,我发现libGDX中存在与此相关的错误,但它已经修复。尴尬的是,只有两个计时器停止工作,而第三个工作正常。

@Override
public void create ( ) {
    createTimers();
    easterTimer.start();
    inputTimer.stop();
    refreshTimer.start();

    //More stuff...
}


//Called by "onRestart()", on other class, after calling super.onRestart method
public void restart(){
    createTimers();
    simulationStatus = simulationStatus_stop;
    selectedOption = -1;
    draggingFinger = false;
    refreshTimer.stop();
    easterTimer.start();
    inputTimer.start();



}


private void createTimers() {
    easterTimer = new Timer();
    easterTimer.scheduleTask(new Timer.Task() {
        @Override
        public void run() {
            System.out.println("easter");
            //Do stuff....
        }
    }, 0, 0.25f);


    inputTimer = new Timer();
    inputTimer.scheduleTask(new Timer.Task() {
        @Override
        public void run() {
            System.out.println("input");
            //Do stuff....
        }
    }, 0, 0.01f);


    refreshTimer = new Timer();
    refreshTimer.scheduleTask(new Timer.Task() {
        @Override
        public void run() {
            System.out.println("refresh");
            //Do stuff....
        }
    }, 0, (float) 1 / 80);
}

请注意,在以下情况下,“refreshTimer”被禁用,因此它不应该打印任何内容 - 正如它所做的那样。虽然我已经测试过,但这个Timer是唯一一个在恢复后正常工作的人。

08-07 23:52:52.450    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:52.450    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:52.450    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:52.490    8762-8762/com.asjv.echarges.android I/AndroidInput﹕ sensor listener tear down
08-07 23:52:52.490    8762-8805/com.asjv.echarges.android I/AndroidGraphics﹕ paused
08-07 23:52:58.430    8762-8762/com.asjv.echarges.android I/AndroidInput﹕ sensor listener setup
08-07 23:52:58.490    8762-8805/com.asjv.echarges.android I/AndroidGraphics﹕ resumed
08-07 23:52:58.490    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ easter
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ easter
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:58.500    8762-8805/com.asjv.echarges.android I/System.out﹕ input
08-07 23:52:59.140    8762-8762/com.asjv.echarges.android I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@41cbafa0 time:92087596

最重要的是:是否有任何比我知识渊博的人有任何关于为什么会发生这种情况的暗示?甚至是什么可能触发日志“Activity_idle id:”,因为之后定时器似乎停止工作?

作为参考,我正在开发Android并使用libGDX 1.6.4

0 个答案:

没有答案