如何在桌面上正确closures应用程序?

当我使用Gdx.app.exit()游戏窗口closures,但资源似乎没有被释放,应用程序仍在运行。

例如,按退出键时退出:

 public boolean keyDown(int keycode) { //... if (Gdx.input.isKeyPressed(Keys.ESCAPE)) Gdx.app.exit(); 

窗口closures, dispose()方法被调用,但是Eclipse仍然报告应用程序是打开的(因为终止button仍然可用): Eclipse报告该应用程序仍在运行

如果应用程序已正确退出,则JVM的path将在其前面有<terminated >,并且红色终止button将变为灰色。

另外当我使用hide()然后dispose()

 @Override public void hide() { dispose(); } @Override public void dispose() { map.dispose(); ... playerHitbox.dispose(); System.out.println("----- END OF OUTPUT -----"); } 

同样的事情发生。 您必须使用Eclipse提供的button来终止应用程序,或者在发行版本中使用kill命令(或任务管理器)。

所以我的问题是,如何正确地退出应用程序,所有资源都正常卸载,窗口隐藏和进程退出LibGDX?

我find了解决scheme!

在我的DesktopLauncher类中,我将config.forceExit设置为false而不是true ,导致应用程序不正确退出(保持在后台运行)。

您需要将config.forceExit设置为true

并没有AL lib清理错误或本地相关的库有问题。

一个简单的System.exit(0); 应该做的伎俩。 根据你的项目设置, Gdx.app.exit(); 可能会终止LibGDX应用程序,而不是整个程序,添加的系统出口将终止运行时。