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