如何防止应用重启后自动创建子片段?

Posted

技术标签:

【中文标题】如何防止应用重启后自动创建子片段?【英文标题】:How to prevent a child fragment to be automatically created after app restart? 【发布时间】:2016-08-30 13:04:38 【问题描述】:

我的应用有一个 Activity A,其中包含一个 Fragment B。在 B 中,用户单击一个按钮,然后在 B 中创建一个子 Fragment C。现在用户通过按主页按钮使应用后台运行。一段时间后,我的应用程序被 android OS 杀死并重新启动。

然后用户再次启动应用程序。现在 Activity A 已启动,并且 Fragment B 及其子 Fragment C 都将自动重新创建。我的问题,如何防止子片段 C 自动重新创建?重启时我尝试在B的onAttachFragment方法中从B中删除片段C,但是没有成功。

@Override
public void onAttachFragment(Fragment f) 
  super.onAttachFragment(f);
  if (isRestart) 
    getChildFragmentManager().beginTransaction()
      .remove(f)
      .commit();
    isRestart = false;

【问题讨论】:

Prevent Fragment recovery in Android的可能重复 【参考方案1】:

好的。我最终在 B 的 onActivityCreated() 中从 B 中删除了子片段 C。之后只调用了C的onCreate(),没有调用onCreateView、onStart、onResume。

【讨论】:

以上是关于如何防止应用重启后自动创建子片段?的主要内容,如果未能解决你的问题,请参考以下文章

Python - 自动创建子记录

从片段创建子意图

在 plotly 中自动创建子图(例如 R 中的 Facetting)

golang 进程创建,fork,以及热重启(无缝升级)

安卓service关闭后怎么自动重启

怎么使用和创建水晶报表 子报表?