这是我的理解,显然是错误的,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