Fragment生命週期

❀卜卜ღ?Bruce發表於2019-03-12

Fragment的生命週期和擁有它的activity密切相關,它擁有一些和標準activity一樣的生命週期,比如onResume(),還有一些方法和activity、UI生成有關。

fragment到resumed state的生命週期核心序列方法如下:

  1. onAttach(Activity) 當activity 和 fragment 關聯在一起的時候會呼叫一次。
  2. onCreate(Bundle) 做fragment的初始建立工作。
  3. onCreateView(LayoutInflater, ViewGroup, Bundle) 建立並且返回fragment的view。
  4. onActivityCreated(Bundle) 告訴fragment,activity 已經完成了自己的Activity.onCreate()
  5. onViewStateRestored(Bundle) 告訴fragment ,view hierachy 的所有的saved state 被複原了。
  6. onStart() 使fragment 對使用者可見(它的activity已經處於started)。
  7. onResume() 使fragment 可以和使用者互動 (它的activity已經處於resumed)。

如果fragment 不再被使用,它會執行以下反序回撥:

  1. onPause() fragment 不再能和使用者互動,因為它的activity處於paused 或者 fragment的操作被修改。
  2. onStop() fragment 不再對使用者可見,因為它的activity處於stopped 或者 fragment的操作被修改。
  3. onDestroyView() 允許fragment清除與View相關聯的資源。
  4. onDestroy() 被呼叫用來做fragment state最後的清理工作。
  5. onDetach() 不再和activity關聯之前被立即呼叫。 呼叫循序如下圖所示:
    fragment_lifecycle.png

注意:所有的回撥都是在主執行緒中被呼叫的!

相關文章