我正在开发一款包含所有典型内容的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
}
}
}
但这还不够,而且只是为了退出。
谢谢!
答案 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应用程序,这是可以理解的。