我有一個viewpager持有許多片段。當活動發送到後臺並且需要資源時,操作系統將終止應用程序或至少一些碎片。當我返回到活動時,它會崩潰,因爲活動試圖附加它在清理前保留的所有碎片的新實例,現在一些字段爲空。這當然可以通過使用Bundle正確實現狀態保存和恢復來解決,但我不想這樣做。 相反,我想防止恢復碎片。有沒有辦法告訴操作系統,一旦它發送了GC並破壞了碎片,它應該不會再打擾它們了嗎?一旦清理完成,我希望在返回時簡單地重新創建活動,就好像用戶通過點擊圖標啓動它一樣。有沒有這樣做的機會?Android防止恢復活動
此處提出的解決方案https://stackoverflow.com/a/15683289/552735不起作用。它會導致異常 java.lang.IllegalStateException:對於鍵f2,Fragement不再存在:index 3
您是否試圖在持有fragents的activity的'onStop()'方法中添加'finish()'?它不會保存任何狀態。 –
即使當我按回家按鈕時,每當它被髮送到後臺時都會終止該活動。這不是我想要的 - 我只希望操作系統停止重新創建所有破壞它們之前存在的碎片。據我所見,ViewPager具有自己的狀態恢復機制,這就是導致這些問題的原因。 – delegate