IllegalStateException活动已被销毁 - 三重嵌套片段

时间:2014-04-21 06:18:23

标签: android android-fragments illegalstateexception android-nested-fragment fragmentmanager

我有一个Fragment,让我们称之为F1,其中包含Fragment F2;其中包含Fragment F3

当我启动我的应用程序时,我收到此错误:

IllegalStateException: Activity has been destroyed

引用这行代码:

        getChildFragmentManager().beginTransaction().add(R.id.fragmentcontainer, fragment_profile_list.newInstance()).commit();

我的主要上级fragmentcontainer FrameLayoutFragmentF1的位置。将F2放置在F1' s fragmentcontainer内的位置。

关于如何解决这个问题的任何想法;我尝试进行搜索,其他结果表示硬编码Fragment字段并立即分配,但这也没有解决问题。

1 个答案:

答案 0 :(得分:1)

在添加F3之前,您可以转储F2的内部状态。如果你看到mActivity!= null就可以了。否则你会得到例外。

dump("", null,  new PrintWriter(System.out, true), null);

我不确定在你的情况下是什么使得mActivity = null。在我的例子中,我在片段附加之前过早地调用片段的getChildFragmentManger(当mActivity = null时)。 当第一次调用它时,getChildFragmentManager在内部初始化片段的mChildFragmentManager。结果,我最终得到了一个具有零mActivity的mChildFragmentManager。后来,当我尝试使用它来添加一个子片段时,我得到了“活动已经被破坏”#39;异常。