這是我的理解,顯然是錯誤的,onPause()
被稱爲每當後退按鈕被按下?現在,在我的代碼,我把這個onPause()
事件:當後退按鈕被按下時onPause不被調用?
@Override
protected void onPause(){
super.onPause();
if(!_END_GAME){
Builder _alert = new AlertDialog.Builder(this)
.setMessage("onPause, with game NOT over!");
_alert.setNeutralButton("OK.",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss(); // Kills the interface
System.runFinalizersOnExit(true);
finish();
}
});
_alert.setTitle("Your Score!");
_alert.show();
}
}
現在的問題是,該對話框不會推出什麼那麼以往,然後將代碼中的錯誤了。我把對話框放在那裏,試圖看到onPause(
被調用的位置,並幫助我調試一些其他變量等。但就像我說的,它甚至沒有被顯示出來。任何想法,爲什麼會這樣?當後退按鈕被按下時,有沒有在onPause()
之前啓動的功能?提前感謝您的任何信息。
這是真的:有情況下'當片段不再可見時,onPause()不會被調用!我有同樣的問題,但情況不同。看來FragmentManager仍然可以在內存中保存碎片。當用戶點擊返回按鈕時,可以取代FM,將整個碎片集合交換出來並顯示以前的狀態。這可能會錯過這些片段的所有onPause,onStop和onDestroy方法。 - 我錯了嗎? – 2017-04-24 14:32:41