桌面上的Libgdx,窗口关闭时如何处理处理

plo*_*su2 4 java android libgdx

我正在使用libgdx(com.badlogic.gdx.Game和Screens以及那些东西)制作游戏.我有以下问题:在桌面上,当我关闭窗口(从顶部的十字架),当然应用程序关闭.但我想回到菜单屏幕并在那里处置,因为我在那里处理资源(通过资产管理器).我有退出游戏的按钮,如果以这种方式退出,那很好.麻烦的是可以按下红十字.那么在这种情况下如何正确处理?

在Android版本上,我抓住了后面的键,并以我自己的方式处理游戏的不同部分和整个游戏.它工作正常.

我有另一个相关的问题:

在桌面上,应用程序无法停止然后处理(在它自己,没有用户显式退出它)像Android版本可以(Android生命周期),对吧?所以这是一个好主意,如果我暂时保存暂停()并从resume()恢复游戏状态,我不会在桌面上恢复(因为恢复不是一个完整的恢复,我不'如果在桌面上,窗口只是最小化(正如我注意到的那样,在最小化/恢复窗口时调用pause()/ resume())),我希望恢复发生.

希望这不太清楚:D.我试图谷歌寻求答案,但似乎没有找到任何东西.任何帮助深表感谢.

don*_*uxx 5

我建议使用libgdx生命周期方法

要处置你应该使用该dispose()方法.你不需要自己打电话!它将在应用程序被销毁时自动调用,请参阅文档:

dispose()在销毁应用程序时调用.之前是对pause()的调用.

所以只需在屏幕中实现dispose方法:

@Override
public void dispose () { 
    //your code needs to get added here, like for example:
    stage.dispose();
    texture.dispose();
    //etc..
}
Run Code Online (Sandbox Code Playgroud)

更新:请注意,AppliacationListener的dispose()会自动调用,而不是Screen的dispose(),请参阅Springrbua的评论

  • `Screen`的文档说,`screen`的`dispoes()`永远不会被自动调用.所以你需要在`hide()`方法中`dispose()``Screen`,或者在你的`Game` /`ApplicationListener`的`dispose()`中调用`screen.dispose()`. (2认同)

Cha*_*ase 0

当您的应用程序被处置时,在所有屏幕上调用 dispose 。