问题描述
我正在尝试关闭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应用程序可以正常工作,而您的应用程序无法捕获它。