Android Fragment的十一個生命週期的作用
要知道fragment的作用就要先知道fragment是幹什麼用的
Fragment 是什麼?
Fragment是Activity中的模組,這個模組有自己的佈局,有自己的生命週期,單獨處理自己的輸入,在Activity執行的時候可以載入或者移除Fragment模組。還可以覆蓋前面的一個頁面,載入我們想要的模組.
下圖是fragment的圖解
看完了圖解,接下來我們就說一下這是一個生命週期的作用
一、onAttach()
作用:fragment已經關聯到activity,這個時候 activity已經傳進來了, 獲得activity的傳遞的值 就可以進行 與activity的通訊裡, 當然也可以使用getActivity(),前提是這個fragment已經和宿主的activity關聯,並且沒有脫離,有且只有呼叫一次。
二、onCreate()
作用:系統建立fragment的時候回撥他,在他裡面例項化一些變數,這些個變數主要是:當你暫停停止的時候你想保持的資料
,只調用一次。
三、onCreateView()
作用: 第一次使用的時候 fragment會在這上面畫一個layout出來, 為了可以畫控制元件 要返回一個 佈局的view,也可以返回null j 就什麼都沒有顯示。當系統用到fragment的時候 fragment就要快速返回它的view,所以儘量在這裡不要做耗時操作,比如從資料庫載入大量資料
四、onActivityCreated()
當Activity中的onCreate方法執行完後呼叫。
注意:
從這句話我們可以看出:當執行onActivityCreated()的時候 activity的onCreate才剛完成。所以在onActivityCreated()呼叫之前 activity的onCreate可能還沒有完成,所以我們不能在onCreateView()中進行與activity有互動的UI操作,UI互動操作可以在onActivityCreated()裡面進行。所以呢,這個方法主要是初始化那些你需要你的父Activity或者Fragment的UI已經被完
整初始化才能初始化的元素。
五、onStart()
啟動Fragement 啟動時回撥,,此時Fragement可見。
六、onResume()
在activity中的執行是可見的。啟用, Fragement 進入前臺, 可獲取焦點時啟用。
七、onPause()
其他的activity獲得焦點,這個仍然可見第一次呼叫的時候,指的是使用者離開這個fragment(並不是被銷燬)
通常用於使用者的提交(可能離開頁面後不會再回到這個頁面)
八、onStop()
fragment是不可見的,可能出現的情況:activity被stopped了或者 fragment被移除但被,加入到回退棧中,一個stopped的fragment仍然是活著的如果長時間不用也會被移除。
九、onDestroyView()
Fragment中的佈局被移除時呼叫。表示fragemnt銷燬相關聯的UI佈局, 清除所有跟檢視相關的資源。然後這個只是移除檢視 並沒有銷燬而且也沒有脫離activity
十、onDestroy()
銷燬fragment物件。
十一、onDetach()
Fragment和Activity解除關聯的時候呼叫。 脫離activity。