重新跳轉到Activity,其中的fragment顯示空白

崩潰, 我的Activity中fragment都顯示空白. 在我的項目中有一個接受推送消息, 消息到來時, 打開Activity, 展示對應信息. 而打開activity之後,發現fragment都顯示空白.  找了很久原因, 也在網上看看了好多解決辦法, 但是好像都不是我這種現象.

然後, 我只能自己冷靜下來好好梳理這個跳轉邏輯, 終於找到了問題原因.  因爲的activity中的fragment是通過我創建的fragmentfactory類來提供的,而這個fragmentfactory類中管理了一個fragment集合, 每次提供fragment的時候先看集合中有沒有, 如果有就從集合中拿取返回. 而我在重新打開activity的時候, 其實是相當於創建了一個新的activity, 不再是之前的那個activity了, 而fragment還是保存在fragmentfactory中, fragment中保存的依附activity還是原來的那個activity, 讓其在新創建的activity上顯示是顯示不出來的, 所以顯示的是空白.

所以,要保證fragment能正常顯示,就要保證其依附的activity不改變, 我的解決辦法是在清單文件中將activity的launchmode設置爲singleTop. 當然,如果fragment不做存儲,每次都重新創建新的fragment也不會出現這樣的問題.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章