viewpager中fragment的生命週期管理

調試fragment的時候發現一個莫名其妙的事情,viewpager中包含4個fragment,其中第一個和第三個fragment是要聯網取得數據的,如圖:
調試

界面剛進去的時候顯示第一個fragment,經過log信息,我發現two fragment居然」偷偷「走了一遍的生命週期!着實把我震驚了! three

而後我滑動到two,發現第三個也「偷」了一遍生命週期,也就是說,手機在顯示第二個不須要聯網的fragment的時候聯網了(由於走了three的生命週期)。 生命週期

而後繼續滑動到第三個fragment,發現one fragment執行了onpause和onstop,four fragment跑了生命週期。如圖: 圖片

圖片說明文字

到這裏都清楚了,總結一下,就是viewpager顯示fragment的時候不會僅僅顯示展示的那個fragment,而是將前一個,後一個,和正在顯示的fragment的生命週期都跑一遍,這可能也是爲了可以更好地管理和顯示fragment吧。 it

ps: 社區

判斷當前的fragement是否在當前顯示用setUserVisibleHint,上文表示除了此法在生命週期上作文章全是扯淡,這個答案來自德問社區。 fragment

相關文章
相關標籤/搜索