我正在经历一个保留片段的奇怪行为。这是我的情况: 我有一个保留的片段,当它的托管活动中发生配置更改时,没有像我期望的那样重新创建它(即,它的onCreate方法没有被调用)。奇怪的是以下内容:如果由于内存压力而重新创建托管活动(您可以通过打开许多其他应用程序来强制执行此操作,具体取决于您设备上的可用RAM),它会在其onCreate和中收到bundle!= null保留片段的onCreate方法也被调用。这对我来说似乎很奇怪,因为它是一个保留的片段。我在哪里可以找到与此行为相关的文档?
如果您想重现此行为,可以尝试使用“FragmentRetainInstanceSupport.java”中声明的支持库示例“Retain Instance”
感谢您的帮助。
答案 0 :(得分:0)
如果由于内存压力而重建托管活动(你可以 根据可用的RAM打开许多其他应用程序强制执行此操作 在你的设备上)它在onCreate和它接收bundle!= null 保留片段的onCreate方法也被调用
如果存在导致Activity
被杀的记忆问题,我对Fragment
寄予厚望。如果该应用程序被杀死,那么一切都无法生存。你无法逃避生命周期。您可以减少重新创建Fragment
或Activity
的机会,但无法阻止它。
您必须考虑到这一点对您的应用进行编程。一切都可能在任何时候被杀死,你的应用程序需要在没有任何例外的情况下生存,你不能依赖于不被重新创建或杀死的东西。