我有一个基于Xamarin Android ActionBar的应用程序。我没有使用任何人的compat库(Sherlock等)。每个选项卡都有一个片段。我注意到以下行为:
假设用户在标签A上启动,对应的片段为A.用户切换到标签B,带有相应的片段B.我的代码告诉应用程序分离片段A,并附加片段B.到目前为止,这么好。现在是奇怪的部分。
假设用户旋转设备。片段都已设置
this.RetainInstance = true;
我保留对它们的静态引用。所以他们坚持下去,这就是我想要的。但奇怪的是,当旋转后重新创建活动时,Android和我的
都会附加片段A和B。base.OnCreate()
从MyActivity.OnCreate()调用。这导致应用程序正在进行我认为不需要的工作。所以我的问题是,我该如何防止这种情况发生?
答案 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