Fragment生命周期详解


概述

Fragment和Activity的生命周期很相似,而Fragment又是依附于Activity的(《Activity生命周期详解》),如下图:
Fragment生命周期详解

  • onAttach():Fragment和Activity相关联时调用。可以通过该方法获取Activity引用,还可以通过getArguments()获取参数。
  • onCreate():Fragment被创建时调用。
  • onCreateView():创建Fragment的布局。
  • onActivityCreated():当Activity完成onCreate()时调用。
  • onStart():当Fragment可见时调用。
  • onResume():当Fragment可见且可交互时调用。
  • onPause():当Fragment不可交互但可见时调用。
  • onStop():当Fragment不可见时调用。
  • onDestroyView():当Fragment的UI从视图结构中移除时调用。
  • onDestroy():销毁Fragment时调用。
  • onDetach():当Fragment和Activity解除关联时调用。

上面的方法中,只有onCreateView()在重写时不用写super方法,其他都需要。

Fragment生命周期解析

  • 当一个fragment被创建的时候:
Created with Raphaël 2.1.2onAttachonCreateonCreateViewonActivityCreated
  • 当这个fragment对用户可见的时(从创建/切换到显示):
Created with Raphaël 2.1.2fragment is createdonStartonResumefragment is running
  • 当这个fragment进入“后台模式”的时候:
Created with Raphaël 2.1.2fragment is runningonPauseonStopfragment is stoped
  • 当这个fragment被销毁了(或者持有它的activity被销毁了):
Created with Raphaël 2.1.2fragment is runningonPauseonStoponDestroyViewonDestroyonDetach

当进行其他操作时

  • 当屏幕灭掉时:
Created with Raphaël 2.1.2fragment is runningonPauseonSaveInstanceStateonStopfragment is stoped
  • 当屏幕解锁时:
Created with Raphaël 2.1.2fragment is stopedonStartonResumefragment is running
  • 当切换到其他Fragment时:
Created with Raphaël 2.1.2fragment is runningonPauseonStoponDestroyView
  • 当切换回本身的Fragment时:
Created with Raphaël 2.1.2onCreateViewonActivityCreatedonStartonResumefragment is running
  • 当回到桌面:
Created with Raphaël 2.1.2fragment is runningonPauseonSaveInstanceStateonStopfragment is stoped
  • 当回到应用时:
Created with Raphaël 2.1.2fragment is stopedonStartonResumefragment is running
  • 当退出应用时:
Created with Raphaël 2.1.2fragment is runningonPauseonStoponDestroyViewonDestroyonDetach

相关文章:

  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-12-31
  • 2021-07-19
  • 2021-11-09
猜你喜欢
  • 2021-12-18
  • 2021-11-22
  • 2021-12-16
  • 2021-08-08
相关资源
相似解决方案