Android 在活动中同时使用onBackPressed()和onSaveInstanceState()
我就这样背着压着Android 在活动中同时使用onBackPressed()和onSaveInstanceState(),android,android-fragments,bundle,state,android-fragmentactivity,Android,Android Fragments,Bundle,State,Android Fragmentactivity,我就这样背着压着 @Override public void onBackPressed() { Intent setIntent = new Intent(this, MainActivity.class); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); } 我还保
@Override
public void onBackPressed() {
Intent setIntent = new Intent(this, MainActivity.class);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
我还保存了我的一个活动片段:
@Override
public void onSaveInstanceState(Bundle outState) {
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
super.onSaveInstanceState(outState);
}
但是,这些方法似乎不能协同工作(状态从未保存,尽管在我重写onBackPressed()
之前它工作得很好)
除了使用
SharedReferences
,还有什么办法可以修复它吗?如果可能的话,我想继续使用onSaveInstanceState()
和onRestoreInstanceState()
。似乎您必须调用
super.onBackPressed();
在onBackPressed()的末尾。这样,当您首先按下back按钮时,它被称为onBackPressed,然后按以下顺序被称为onPause()、onStop()、onSaveInstanceState()和onDestroy()
只是一个关于OnBackpress的问题为什么要更改“后退”按钮的行为?Android知道如何返回到以前的活动