【问题标题】:Using onBackPressed() and onSaveInstanceState() together in an Activity在 Activity 中同时使用 onBackPressed() 和 onSaveInstanceState()
【发布时间】:2014-06-06 09:44:25
【问题描述】:

我像这样覆盖 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()

【问题讨论】:

    标签: android android-fragments bundle state android-fragmentactivity


    【解决方案1】:

    看来你得打电话了

    super.onBackPressed();
    

    在 onBackPressed() 结束时。这样,当您首先按下返回按钮时,将调用 onBackPressed,然后依次调用 onPause()、onStop()、onSaveInstanceState(),最后调用 onDestroy()。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多