3
使用后退按钮无法从PlayN GameActivity正确退出。在Android中使用后退按钮正确退出PlayN游戏
我使用下面的代码:
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关闭,但如果您再次运行游戏,它将显示两个工作线程(上一个和当前)的同一游戏的两个副本,并且在根层中您将看到两个根层的副本。
我真的很愚蠢,但是如何正确完成finish()以完全从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(...)。在你的游戏玩(),否则所有的活动上崩溃出口。
我发现这个小的解决办法,将在本次重写的onDestroy在GameActivity方法:
@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!.");
}
}
,但仍然不知道为什么会发生异常。
'finish()'和'this.finish()'有什么区别? – nhaarman
这就是我通常所说的,所以我只是建议我的方式。我知道调用完成,这个.finish在这个特殊情况下不会有任何改变。两者都是正确的,我不认为有必要对此投票。 – Mohit