1. 程式人生 > >Android Fragment的十一個生命週期的作用

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。