【问题标题】:When activity is recreated, detached fragment gets attached?重新创建活动时,分离的片段会附加吗?
【发布时间】:2014-09-28 18:14:05
【问题描述】:

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

假设用户从 Tab A 开始,带有相应的片段 A。用户切换到标签 B,带有相应的片段 B。我的代码告诉应用程序分离片段 A,并附加片段 B。到目前为止,一切都很好。现在是奇怪的部分。

假设用户旋转设备。碎片都设置好了

this.RetainInstance = true;

我保留对它们的静态引用。所以他们留下来,这就是我想要的。但奇怪的是,在旋转后重新创建 Activity 时,Android 会附加片段 A 和 B,在我的过程中

base.OnCreate()

来自 MyActivity.OnCreate() 的调用。这导致应用程序执行我认为不需要的工作。所以我的问题是,我怎样才能防止这种情况发生?

【问题讨论】:

  • 仅供参考:this.setRetainInstance(true); (这是 v4.app.Fragment 中可用的内容)

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


【解决方案1】:

您应该阅读 android 指南。你必须保存片段状态和活动状态,我想不要使用静态链接和retainInstanceState。 Google 如何使用 Bundle 和 saveInstanceState,onCreate onRestoreInstancestate 方法。此外,在游戏之后,您可以通过放置的标签找到您的片段,并在不替换的情况下重复使用它。

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

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

【讨论】:

    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多