我有一个查看器,里面有很多片段。当活动被发送到后台并且需要资源时,操作系统将杀死应用程序或至少一些片段。当我返回活动时,它崩溃了,因为活动试图附加它在清理之前持有的所有片段的新实例,现在一些字段为空。这当然可以通过使用 Bundles 正确实现状态保存和恢复来解决,但我不想这样做。相反,我想防止恢复碎片。有没有办法告诉操作系统,一旦它发送了 GC 并销毁了碎片,它就不应该费心重新创建它们?清理完成后,我希望在返回时简单地重新创建活动,就好像用户通过点击图标启动它一样。有机会这样做吗?
此处建议的解决方案https://stackoverflow.com/a/15683289/552735不起作用。它会导致异常 java.lang.IllegalStateException: Fragment no longer exist for key f2: index 3