在Activity被杀死并重新创建后,片段仍然存在

Tow*_*288 24 android kill-process ondestroy android-fragments android-fragmentactivity

我有一个FragmentActivity(支持片段),我通过代码创建片段并将它们放入FrameLayouts.到目前为止一切正常.现在,如果我离开应用程序返回一切正常,只要系统不会杀死我的活动(或者我使用DDMS中的停止按钮执行此操作).如果发生这种情况,则不会调用任何内容,我的Activity也会被杀死.没有调用onDestroy.

因此,当我重新打开我的应用程序时,所有碎片仍然存在,并且我得到NullPointerExeptions因为他们试图完成他们的工作.片段不应该存在于App的这种状态中,这对我来说是个问题.

我不需要它们在backStack中,所以我不把它们放在那里,不能调用popBackStack()来摆脱它们.

如何在onCreate()中重置FragmentManager,或者只是确保片段也被销毁?

sta*_*an0 5

Fragment 的生命周期类似于 Activity 的生命周期,因此它可以被系统杀死并重新创建,以便为其他应用程序节省内存。这意味着有一种机制可以保存和恢复片段的状态。你应该使用它。

如果无法保存片段的状态(由于其数据是动态的且不可序列化),请尝试为非初始化状态实现一些默认行为。


Mik*_*kel 0

不确定是否是同样的问题,但前段时间我在 viewpager 中遇到了片段问题,其中片段生命周期方法从未被调用,问题出在片段管理器上。

因此,尝试使用 childFragmentManager 而不是 supportFragmentManager,看看它是否可以解决您的问题。