暂停或退出安卓游戏

时间:2012-11-05 17:34:16

标签: android game-engine onpause

我正在开发一款包含所有典型内容的Android游戏:游戏循环,渲染器,面板......

问题在于,当我退出游戏时,它总是崩溃......我认为这是因为我没有正确停止游戏循环并继续。此外,我想在“最小化”游戏或者将手机切换到待机状态时暂停它。

我应该在onPause和onDestroy中添加什么内容?

我只有这个:

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

    super.surfaceDestroyed(holder);

    //Stop game loop:
    loop.setRunning(false);

    boolean retry = true;
    while (retry) 
    {           
        try 
        {
            //gameLoop.join();
            loop.stop();
            retry = false;
        } 
        catch (Exception e) 
        {
            // try again shutting down the thread
        }
    }
}

但这还不够,而且只是为了退出。

谢谢!

1 个答案:

答案 0 :(得分:1)

为了确保您的应用程序正常运行"通常" (通常意味着它按照您希望的方式运行),您应该覆盖包含游戏循环的活动中的onPause()onResume()方法。鉴于您还没有真正提供其他许多代码,因此您只是忘记实现这一点。

例如,这里有一些抽象的伪代码来实现你的目标:

protected void onPause(){

   //Save the game state
   //Pause the game loop
   //Save any other data that need to be persistent throughout sessions
}

protected void onResume(){

   //Reinitialize game state
   //Reinitialize any other persistent data
   //Resume the game loop
}

如果您之前从未开发过Android应用程序,这是可以理解的。

有关Android活动状态的其他说明,请参阅摘自Android this文档的Activity图片。