我无法使用“返回”按钮正确退出PlayN GameActivity。
我正在使用以下代码:
public class Loader extends GameActivity {
public void main(){
PlayN.run(new Game());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return super.onKeyDown(keyCode, event);
}
}
但是不够正确。
GameActivity关闭,但是如果再次运行游戏,它将显示同一游戏的两个副本,其中包含两个工作线程(前一个和当前),在根层中,您将看到两个根层副本。
我真的很蠢,但是如何正确地完成()使用所有内部线程/监听器/图层/音频从mem中消除GameActivity?
此
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();
}
return super.onKeyDown(keyCode, event);
}
只有在游戏中未使用 PlayN.assets()。getSound(...)。play()时才有效,否则所有活动在退出时都会崩溃。
我找到了一个小的解决方法,你应该在你的GameActivity中覆盖onDestroy方法:
@Override
public void onDestroy() {
super.onStop();
try {
super.onDestroy();
} catch (IllegalStateException e) {
android.util.Log.e("Easy", "JVM: playn.android.AndroidCompressedSound.MediaPlayer melts my brain!.");
}
}
但仍然不知道为什么会发生这种异常。
答案 0 :(得分:0)
首先,尝试使用:this.finish();而不是完成();
或使用以下技术:
覆盖当前活动的onDestroy,如下所示:
@Override
protected void onDestroy() {
super.onDestroy();
System.runFinalizersOnExit(true);
System.exit(0);
}
并调用它,即this.onDestroy();
Imp:它会杀死与你的app相关的所有正在进行的进程!