0

我正在尝试创建一个 android 游戏,但在关闭屏幕时遇到问题。

目前我的游戏是这样工作的,当我按下主页按钮时它会暂停,当你按下返回按钮时它会停止并稍后重新开始。

现在我注意到,当我按下电源按钮关闭屏幕时,它会停止游戏,而不关闭,当我重新打开屏幕时,它会重新启动。我想防止这种情况,让游戏只在我关闭屏幕时暂停,

我当前的代码:

public void surfaceCreated(SurfaceHolder holder) {
    if (!mGameIsRunning) {
        mGameIsRunning = true;
        loop = new GameLoop(getHolder(), this);
        createSprites();
        loop.setRunning(true);
        loop.start();

    } else {
        resume();
    }

}

public void surfaceDestroyed(SurfaceHolder holder) {
    pause();
}

public void pause() {
    loop.setRunning(false);
    while (true) {
        try {
            loop.join();
        } catch (InterruptedException e) {
        }
        break;
    }
    loop = null;
}

public void resume() {
    loop = new GameLoop(getHolder(), this);
    loop.setRunning(true);
    loop.start();
}
4

1 回答 1

0

可能是您的应用程序正在丢失其 OpenGL 上下文,并且在您重新打开它时必须重新启动。我记得,如果您使用“主页”按钮,上下文将被保存一段时间,但当您使用后退按钮或让设备进入睡眠状态时,它会被丢弃。

您可以尝试使用“主页”按钮并将其留在后台一段时间,您的测试可能是这样的:“主页”按钮 -> 立即切换回工作。试着给它一些时间让上下文消失。

同样,我不确定。自从我完成任何 Android 编程以来,我已经有一段时间了。

于 2013-05-02T18:59:21.087 回答