天天看點

關于fragment與activity生命周期相關讨論

        activity與fragment的生命周期對于android開發來說至關重要,雖然是很基礎的問題,基本上所有人都可以熟練的背誦兩個元件的生命周期方法,但是更加清晰的使用這些生命周期方法就得需要費一些力氣了。使用得到可以優化界面,在細節上處理一些疑難問題,促進整個系統的邏輯的完整性和合理性。

        舉個栗子,我想在一個fragment中注冊一個監聽并且在合适的時候取消注冊(當然是為了防止記憶體洩漏),而這個fragment不屬于第一個可見的fragment,而是最後一個。另外,我加載fragment的方式(或者叫政策)是通過啟動一個事物管理,在點選相應的button的時候才會add這個fragment,同時隐藏上一個fragment,是以在最初加載activity的時候,這個fragment其實并沒有建立(不同于普通的fragment+viewpager的方式),是以就是如果我不打開這個fragment,相應的監聽方法并不會執行。這就與我的業務邏輯相違背了,那麼該如何處理呢?

        方式一:改用其他的加載fragment的方法,讓fragment在activity建立的時候就建立

        方式二:在activity建立的時候,就手動的建立這個fragment,先隐藏,需要的時候再顯示。

        方式三:不處理,因為想要擷取相應的監聽,無非是監測資料的變化,如果不打開fragment,即便資料發生變化,也不影響UI顯示,是以資料處理可以放到onResume等方法中執行。