0

我正在开发一款包含所有典型内容的 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
        }
    }
}

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

谢谢!!

4

1 回答 1

1

为了确保您的应用程序行为“正常”(通常意味着它按照您希望的方式运行),您应该覆盖包含游戏循环的活动中的onPause() and方法。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活动文档。

于 2012-11-05T18:03:40.823 回答