Fragment各种情况的生命周期

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处。 https://blog.csdn.net/qq_36882793/article/details/82151686

Fragment生命周期方法:

onAttach(): 完成Fragment和Activity的绑定,参数中的Activity即为要绑定的Activity,可以进行赋值等操作。
onCreate() : 完成Fragment的初始化
onCreateView() : 加载Fragment布局,绑定布局文件
onActivityCreated() : 表名与Fragment绑定的Activity已经执行完成了onCreate,可以与Activity进行交互操作。
onStart() : Fragment变为可见状态
onResume() : Fragment变为可交互状态
onPause(): Fragment变为不可交互状态(不代表不可见)
onSaveInstanceState():保存当前Fragment的状态。记录一些数据,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。
onStop(): Fragment变为不可见状态
onDestroyView() : 销毁Fragment的有关视图,但并未和Activity解绑,可以通过onCreateView()重新创建视图。Fragment销毁时或者ViewPager+Fragment情况下会调用
onDestroy() : 销毁Fragment时调用。
onDetach() : 解除和Activity的绑定。Fragmen销毁最后一步

Activity启动时:

    A.onCreate 
    A.onStart 执行中  
    F.onAttach 
    F.onCreate 
    F.onCreateView
    F.onActivityCreated
    F.onStart
    A.onStart 结束
    A.onResume
    F.onResume

这里写图片描述

Activity 发生跳转时(A跳转到B):

    A.onPause 执行中
    F.onPuase
    A.onPause 执行结束
    B.onCreate
    B.onStart
    B.onResume
    F.onSaveInstanceState
    A.onStop 执行中
    F.onStop
    A.onStop执行结束

这里写图片描述

从别的页面跳转到该Activity时:(C跳转到A,Fragment依附于A)

    C.onPause
    A.onCreate
    A.onStart 执行中  
    F.onAttach 
    F.onCreate 
    F.onCreateView
    F.onActivityCreated
    F.onStart
    A.onStart 结束
    A.onResume
    F.onResume
    C.stop

这里写图片描述

销毁Activity时生命周期

A.onPuase 执行中
F.onPuase
A.onPuase 执行结束
A.onStop 执行中
F.onStop
A.onStop执行结束
A.onDestory 执行中
F.onDestoryView
F.onDestory
F.onDetach
A.onDestory结束

这里写图片描述

锁屏时

A.onPause执行中
F.onPuase
A.onPause执行结束
F.onSaveInstanceState
A.onStop执行中
F.onStop
A.onStop执行结束

这里写图片描述

亮屏时

A.onStart 执行中
F.onStart
A.onStart执行结束
A.onResume
F.onResume

这里写图片描述

Home键切到后台时

A.onPause执行中
F.onPuase
A.onPause执行结束
F.onSaveInstanceState
A.onStop执行中
F.onStop
A.onStop执行结束

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_36882793/article/details/82151686