暂停或退出android游戏
我正在开发一个Android游戏,它包含了所有典型的东西:游戏循环、渲染器、面板等等 问题是当我退出游戏时,它总是崩溃。。。我想这是因为我没有正确地停止游戏循环,游戏还在继续。另外,当我“最小化”游戏或切换手机待机时,我想暂停它 我应该在暂停和恢复中加什么 我只有这个:暂停或退出android游戏,android,game-engine,onpause,Android,Game Engine,Onpause,我正在开发一个Android游戏,它包含了所有典型的东西:游戏循环、渲染器、面板等等 问题是当我退出游戏时,它总是崩溃。。。我想这是因为我没有正确地停止游戏循环,游戏还在继续。另外,当我“最小化”游戏或切换手机待机时,我想暂停它 我应该在暂停和恢复中加什么 我只有这个: @Override public void surfaceDestroyed(SurfaceHolder holder) { super.surfaceDestroyed(holder); //Stop ga
@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
}
}
}
但这还不够,只是为了退出
谢谢 为了确保您的应用程序“正常”运行(通常意味着它按照您希望的方式运行),您应该覆盖包含游戏循环的活动中的
onPause()
和onResume()
方法。考虑到您实际上没有提供太多其他代码,这是有道理的,因为您只是忘记了实现它
例如,这里有一些抽象的psuedo代码来实现您的目标:
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文档的图片。需要代码和logcat堆栈跟踪。只要试着想象你就是我。我只有你键入的文本。你怎么回答这个问题?我没有这些函数的代码。这就是为什么它会崩溃。我不知道如何正确地停止循环。我只有onSurfaceDestroy。我怎样才能保存游戏状态?我的意思是,当我最小化游戏时,所有的东西都被破坏了:我在哪里可以保存它?这真的取决于你的实现。您始终可以使用简单的数据库使数据持久化,甚至可以在每次调用
onPause()
期间将值写入文件。然后可以在onResume()调用中读取相应的文件。为了帮助您实现前一种选择,请研究基于SQLite数据的方法(您可能已经开始了),后者研究将信息写入文件。