Android的Fragment的生命周期

一:Fragment的生命周期

二:與Activity生命周期的對比

三:各個方法的理解~\(≧▽≦)/~

onAttach:onAttach()在fragment與Activity關聯之后調用

onCreate:fragment初次創建時調用。盡管它看起來像是Activity的OnCreate()函數,但這個只是用來創建Fragment的。此時的Activity還沒有創建完成,因為我們的Fragment也是Activity創建的一部分。所以如果你想在這里使用Activity中的一些資源,將會獲取不到。比如:獲取同一個Activity中其它Frament的控件實例。如果想要獲得Activity相關聯的資源,必須在onActivityCreated中獲取。

onCreateView:在這個fragment構造它的用戶接口視圖(即布局)時調用。在這里期望返回此Fragment的一個視圖層次結構。使用LayoutInflater的inflater()方法來構造視圖。

onActivityCreated:在Activity的OnCreate()結束后,會調用此方法。所以到這里的時候,Activity已經創建完成!在這個函數中才可以使用Activity的所有資源。

onStart:當到OnStart()時,Fragment對用戶就是可見的了。但用戶還未開始與Fragment交互。在生命周期中也可以看到Fragment的OnStart()過程與Activity的OnStart()過程是綁定的。意義即是一樣的。以前你寫在Activity的OnStart()中來處理的代碼,用Fragment來實現時,依然可以放在OnStart()中來處理。

onResume:當這個fragment對用戶可見并且正在運行時調用。這是Fragment與用戶交互之前的最后一個回調。從生命周期對比中,可以看到,Fragment的OnResume與Activity的OnResume是相互綁定的,意義是一樣的。它依賴于包含它的activity的Activity.onResume。當OnResume()結束后,就可以正式與用戶交互了。

onPause:此回調與Activity的OnPause()相綁定,與Activity的OnPause()意義一樣。

onStop:這個回調與Activity的OnStop()相綁定,意義一樣。已停止的Fragment可以直接返回到OnStart()回調,然后調用OnResume()。

onDestroyView:如果Fragment即將被結束或保存,那么撤銷的下一個回調將是onDestoryView()。會將在onCreateView創建的視圖與這個fragment分離。下次這個fragment若要顯示,那么將會創建新視圖。這會在onStop之后和onDestroy之前調用。

onDestroy:當這個fragment不再使用時調用。需要注意的是,它即使經過了onDestroy()階段,但仍然能從Activity中找到,因為它還沒有Detach。

onDetach:Fragment生命周期中最后一個回調是onDetach()。調用它以后,Fragment就不再與Activity相綁定,它也不再擁有視圖層次結構,它的所有資源都將被釋放。

四:最后還要說~\(≧▽≦)/~

我們一般檢驗生命周期都是用Log.e打印看的~\(≧▽≦)/~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容