Fragment的生命週期和擁有它的activity密切相關,它擁有一些和標準activity一樣的生命週期,比如onResume(),還有一些方法和activity、UI生成有關。
fragment到resumed state的生命週期核心序列方法如下:
- onAttach(Activity) 當activity 和 fragment 關聯在一起的時候會呼叫一次。
- onCreate(Bundle) 做fragment的初始建立工作。
- onCreateView(LayoutInflater, ViewGroup, Bundle) 建立並且返回fragment的view。
- onActivityCreated(Bundle) 告訴fragment,activity 已經完成了自己的Activity.onCreate()。
- onViewStateRestored(Bundle) 告訴fragment ,view hierachy 的所有的saved state 被複原了。
- onStart() 使fragment 對使用者可見(它的activity已經處於started)。
- onResume() 使fragment 可以和使用者互動 (它的activity已經處於resumed)。
如果fragment 不再被使用,它會執行以下反序回撥:
- onPause() fragment 不再能和使用者互動,因為它的activity處於paused 或者 fragment的操作被修改。
- onStop() fragment 不再對使用者可見,因為它的activity處於stopped 或者 fragment的操作被修改。
- onDestroyView() 允許fragment清除與View相關聯的資源。
- onDestroy() 被呼叫用來做fragment state最後的清理工作。
- onDetach() 不再和activity關聯之前被立即呼叫。 呼叫循序如下圖所示:
注意:所有的回撥都是在主執行緒中被呼叫的!