LibGDX And​​roid Gdx.app.exit无法正常工作,如何以其他方式关闭应用?

问题描述

我正在尝试关闭Android的模板应用程序(render()方法启动后5秒钟)。
应用程序正在关闭,但背景中的活动仍然活跃,如果需要,我可以返回应用程序。
当我不带计时器使用this.dispose()时,恰好在render()方法的末尾,它可以正常工作-没有恢复应用程序的活动,但是当gdx绘制任何内容时,都会发生此问题。
我试过放置计时器:Gdx.app.exit()/ this.dispose()/ System.exit(-1),如果render()方法已经工作了一段时间,没有任何帮助。

代码如下:

public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
MyGdxGame instance;
boolean isReadyToClose = false;

@Override
public void create () {
    instance = this;
    batch = new SpriteBatch();
    img = new Texture("badlogic.jpg");
}

@Override
public void render () {

    Gdx.gl.glClearColor(1,1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.begin();
    batch.draw(img,0);
    batch.end();

    if (!isReadyToClose) {

        isReadyToClose = true;

        new Timer().scheduleTask(new Timer.Task() {
            @Override
            public void run() {

                //instance.dispose();
                Gdx.app.exit();

            }
        },5);

    }

}

@Override
public void dispose () {
    batch.dispose();
    img.dispose();

    System.exit(-1);
}
}

解决方法

您不应该在移动平台上退出应用程序,Gdx.app.exit仅适用于台式机。用户按下返回键,Android应用程序可以正常工作,而您的应用程序无法捕获它。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...