一:Fragment的生命周期
二:與Activity生命周期的對比
三:各個方法的理解~\(≧▽≦)/~
onAttach:onAttach()在fragment與Activity關(guān)聯(lián)之后調(diào)用
onCreate:fragment初次創(chuàng)建時調(diào)用辈末。盡管它看起來像是Activity的OnCreate()函數(shù)垄分,但這個只是用來創(chuàng)建Fragment的摩渺。此時的Activity還沒有創(chuàng)建完成却汉,因為我們的Fragment也是Activity創(chuàng)建的一部分盐肃。所以如果你想在這里使用Activity中的一些資源,將會獲取不到痰憎。比如:獲取同一個Activity中其它Frament的控件實例。如果想要獲得Activity相關(guān)聯(lián)的資源珍策,必須在onActivityCreated中獲取。
onCreateView:在這個fragment構(gòu)造它的用戶接口視圖(即布局)時調(diào)用宅倒。在這里期望返回此Fragment的一個視圖層次結(jié)構(gòu)攘宙。使用LayoutInflater的inflater()方法來構(gòu)造視圖。
onActivityCreated:在Activity的OnCreate()結(jié)束后拐迁,會調(diào)用此方法模聋。所以到這里的時候,Activity已經(jīng)創(chuàng)建完成唠亚!在這個函數(shù)中才可以使用Activity的所有資源链方。
onStart:當?shù)絆nStart()時,F(xiàn)ragment對用戶就是可見的了灶搜。但用戶還未開始與Fragment交互祟蚀。在生命周期中也可以看到Fragment的OnStart()過程與Activity的OnStart()過程是綁定的。意義即是一樣的割卖。以前你寫在Activity的OnStart()中來處理的代碼前酿,用Fragment來實現(xiàn)時,依然可以放在OnStart()中來處理鹏溯。
onResume:當這個fragment對用戶可見并且正在運行時調(diào)用罢维。這是Fragment與用戶交互之前的最后一個回調(diào)。從生命周期對比中丙挽,可以看到肺孵,F(xiàn)ragment的OnResume與Activity的OnResume是相互綁定的,意義是一樣的颜阐。它依賴于包含它的activity的Activity.onResume平窘。當OnResume()結(jié)束后,就可以正式與用戶交互了凳怨。
onPause:此回調(diào)與Activity的OnPause()相綁定瑰艘,與Activity的OnPause()意義一樣是鬼。
onStop:這個回調(diào)與Activity的OnStop()相綁定,意義一樣紫新。已停止的Fragment可以直接返回到OnStart()回調(diào)均蜜,然后調(diào)用OnResume()。
onDestroyView:如果Fragment即將被結(jié)束或保存芒率,那么撤銷的下一個回調(diào)將是onDestoryView()囤耳。會將在onCreateView創(chuàng)建的視圖與這個fragment分離。下次這個fragment若要顯示敲董,那么將會創(chuàng)建新視圖。這會在onStop之后和onDestroy之前調(diào)用慰安。
onDestroy:當這個fragment不再使用時調(diào)用腋寨。需要注意的是,它即使經(jīng)過了onDestroy()階段化焕,但仍然能從Activity中找到萄窜,因為它還沒有Detach。
onDetach:Fragment生命周期中最后一個回調(diào)是onDetach()撒桨。調(diào)用它以后查刻,F(xiàn)ragment就不再與Activity相綁定,它也不再擁有視圖層次結(jié)構(gòu)凤类,它的所有資源都將被釋放穗泵。
四:最后還要說~\(≧▽≦)/~
我們一般檢驗生命周期都是用Log.e打印看的~\(≧▽≦)/~