【问题标题】:What happens to data when onPause is called on Activity在 Activity 上调用 onPause 时数据会发生什么
【发布时间】:2014-02-26 14:16:44
【问题描述】:

我有一个在应用程序上运行的活动,当用户单击搜索图标时,另一个活动(谷歌地图)打开。 所以我假设第一个活动 onPause 被调用,当地图活动完成时,第一个活动 onResume 被调用。

所以我的问题是,在调用 Maps 活动之前,用户输入并分配给第一个活动中的变量的所有数据会发生什么情况,会丢失吗?

【问题讨论】:

  • 完全没有,如果活动没有被破坏,用户输入的所有数据仍然保存在活动中。
  • 谢谢,但我有一个全局字符串表示存储照片的目录,当我尝试获取 onResume 中的值时,它是空的..

标签: android android-activity


【解决方案1】:

当您开始另一个活动时,Android 会为视图存储用户数据。

onSaveInstanceState方法将被执行并存储数据。

调用以在被杀死之前从活动中检索每个实例的状态,以便可以在 onCreate(Bundle) 或 onRestoreInstanceState(Bundle) 中恢复状态(此方法填充的 Bundle 将传递给两者)。

您可以查看更多信息here

如果你想保留你的变量,你可以覆盖 onSaveInstanceState

static final String STATE_SCORE = "playerScore";
...

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save the user's current game state
    savedInstanceState.putInt(STATE_SCORE, mCurrentScore);

    super.onSaveInstanceState(savedInstanceState);
}

为了让他们回来,

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
        // Restore value of members from saved state
        mCurrentScore = savedInstanceState.getInt(STATE_SCORE);     
    }
    ...
}

【讨论】:

  • 在我的 Editetxt 字段中输入的所有数据都已成功保存,但是我无法理解的是我有一个全局字符串,它表示用于保存图像的 SD 卡路径以及位图本身,这些都不是被保存,它们通过 onActivityResult 调用被赋值
  • 只保存视图状态,如果要保存变量,需要手动添加 onSaveInstanceState 并在 onRestoreInstancesState 中取回
  • 我们只能使用 saveInstanceState 保存图元和字符串还是可以保存位图?
  • 可以,需要使用parcelable接口。
【解决方案2】:

不,不是全部。用户输入的数据仍然存在,但您必须将变量保存在

@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); }

然后让他们回来

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

【讨论】:

    【解决方案3】:

    这取决于你的backstack没有被清除的情况。请阅读并有一些explanation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2014-11-11
      • 2013-09-17
      • 2012-01-23
      • 2010-12-15
      • 1970-01-01
      相关资源
      最近更新 更多