【问题标题】:Android activity re-created each time每次都重新创建 Android 活动
【发布时间】:2013-10-05 22:58:28
【问题描述】:

我有一个包含许多字段(类字段/成员)的活动。我想通过调用其他活动(使用 startActivityForResult)来设置这些字段,但不保留字段值。看起来每次我从另一个活动返回到我的原始活动时,都会创建一个新实例并重新初始化字段(每次我从另一个活动返回时都会调用 onCreate() 方法,也会调用 onDestroy()每次我用 startActivityForResult 加载另一个活动时都是原始的;我从不调用finish())。我希望我能很好地解释我的问题。

欢迎提出任何建议。

谢谢, 西尔维

【问题讨论】:

  • 我通过覆盖 onSaveInstanceState 和 onRestoreInstanceState 并保存/恢复我的所有数据解决了我的问题。但我仍然认为这不是我上述问题的答案。

标签: android android-activity state lifecycle


【解决方案1】:

确保您的所有字段都有唯一的 id,因为 Android 在重绘 Activity 时使用这些 id 来保留字段值。

【讨论】:

  • 我在谈论类字段/成员。我不明白为什么我正在使用的 Activity 类被重新实例化(并且它的所有类成员都被重置为他们的声明)。
【解决方案2】:

您是否在 Android Manifest 中为具有 startActivityForResult 代码的 Activity 设置了 android:launchMode="singleInstance"?

如果是这样,请删除该启动模式,因为它是 startActivityForResult 的一些已知问题。

【讨论】:

  • 不,我没有为我的 AndroidManifest 中的任何活动设置该设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 2013-04-01
相关资源
最近更新 更多