Android Fragment&活动表现为方向变化

时间:2013-08-14 08:26:33

标签: android android-activity fragment

我有一个活动,其中我有很少的片段。

对于retain instance属性,片段都设置为false,这意味着当屏幕oritenation更改时它们会被销毁。 (另外,他们不在后面堆叠)

当我改变屏幕方向时,我观察到碎片被破坏并重新创建,这是预期的。

我不期望的是 - 在活动重新创建期间通过活动重新附加这些片段。我在Activity的onCreate方法中进行了一次空检查,该方法确定片段是否存在,并根据此决定添加或附加。

现在,如果删除/销毁所有片段,则会在onCreate of activity中附加片段。不应该添加,因为它被销毁了?

我怀疑Activity的onCreate的super.onCreate(savedInstanceState)会在这里再次加载片段。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这似乎与以下内容重复: Android Fragment lifecycle over orientation changes

上面的简短答案: "当配置更改发生时,旧的片段不会被销毁 - 它会在重新创建时将其自身添加回活动。在大多数情况下,这是后方的巨大痛苦。"

"为了确保一致的用户体验,当由于配置更改而重新启动Activity时,Android会保留Fragment布局和关联的后台堆栈。" (Reto Meier书第124页)

不要在方法中调用super.onSaveInstanceState(): 这很可能会破坏活动生命周期,在这个已经非常混乱的过程中引入更多潜在问题。查看FragmentActivity的源代码:它保存了那里所有片段的状态。 - Brian Jan 15' 13 at 10:08