繁体   English   中英

在活动中一起使用onBackPressed()和onSaveInstanceState()

[英]Using onBackPressed() and onSaveInstanceState() together in an Activity

我像这样覆盖onBackPressed

@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()之前它能很好地工作)。

除了使用SharedPreferences之外,还有什么方法可以修复它? 如果可能的话,我想坚持使用onSaveInstanceState()onRestoreInstanceState()

看来你必须打电话

super.onBackPressed();

在onBackPressed()的末尾。 这样,当您先按后退按钮时,将调用onBackPressed,然后按此顺序依次调用onPause(),onStop(),onSaveInstanceState(),最后是onDestroy()。

只是有关onBackPressed的问题。 为什么要更改后退按钮的行为? Android知道如何返回上一个活动!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM