重新创建活动时,是否附加了分离的片段?

时间:2014-09-28 18:14:06

标签: android android-activity android-fragments android-actionbar

我有一个基于Xamarin Android ActionBar的应用程序。我没有使用任何人的compat库(Sherlock等)。每个选项卡都有一个片段。我注意到以下行为:

假设用户在标签A上启动,对应的片段为A.用户切换到标签B,带有相应的片段B.我的代码告诉应用程序分离片段A,并附加片段B.到目前为止,这么好。现在是奇怪的部分。

假设用户旋转设备。片段都已设置

this.RetainInstance = true;

我保留对它们的静态引用。所以他们坚持下去,这就是我想要的。但奇怪的是,当旋转后重新创建活动时,Android和我的

都会附加片段A和B。
base.OnCreate()

从MyActivity.OnCreate()调用。这导致应用程序正在进行我认为不需要的工作。所以我的问题是,我该如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

你应该阅读android指南。您必须保存片段状态和活动状态,我想不要使用静态链接和retainInstanceState。谷歌如何使用Bundle和saveInstanceState,onCreate onRestoreInstancestate方法。在娱乐之后,您可以通过放置标签找到片段并重复使用它而无需替换。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

http://developer.android.com/guide/components/fragments.html