我无法使用后退按钮正确退出 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 关闭,但如果您再次运行游戏,它将显示具有两个工作线程(前一个和当前)的同一游戏的两个副本,并且在根层中,您将看到根层的两个副本。
我真的很愚蠢,但是如何正确地完成()以完全从内存中销毁所有内部线程/侦听器/层/音频的 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() 时才有效,否则所有 Activity 在退出时都会崩溃。
我为此找到了一个小解决方法,您应该通过以下方式覆盖 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!.");
}
}
但仍然不知道为什么会发生这种异常。