前言
在这之前我们学习了活动的状态与生命周期,其实碎片也有它自己的生命周期,并且它和活动的生命周期非常相似,下面我们一起来许学习它的生命周期。
一、碎片的状态
活动有四个不同的状态:运行状态、暂停状态、停止状态、销毁状态。
类似地,碎片也有这些状态,只不过它们的状态会有一些细小的区别。
1. 运行状态
当一个碎片可见时,并且与他关联的活动正在处于运行状态时,该碎片也处于运行状态。
2. 暂停状态
当与它相关联的活动处于暂停状态时,与它相关联的可见碎片也就处于了暂停状态。
3. 停止状态
当一个活动进入停止状态时,与它相关联的碎片也进入停止状态。还有,就是通过调用FragmentTransaction的remove()和replace()方法将碎片从活动中移除,但是在提交事务前调用了addToBackStack()方法,这时的碎片也是处于停止状态的。当心,这个状态的碎片用户完全不可见,可能会被系统回收。
4. 销毁状态
活动处于销毁状态时,与它相关联的碎片也就处于了销毁状态。还有,就是通过调用FragmentTransaction的remove()和replafce()方法将碎片从活动中移除,但是在提交事务前没有调用addToBackStack()方法,这时的碎片也是处于销毁状态的。
二、碎片的生命周期
![](https://img-blog.csdnimg.cn/20200911205701914.png?)
如图所示,碎片共有11个不同的周期。
- onAttach()
当碎片和活动建立关联的时候调用。 - onCreate()
当第一次创建碎片的时候调用。 - onCreateView()
为碎片加载布局时调用。 - onActivityCreated()
确保与碎片相关联的活动一定已经创建完毕的时候调用,也就是当Activity中的onCreate方法执行完后调用。 - onStart()
碎片从不可见变为可见时调用。 - onResume()
碎片准备好与用户进行交互时调用。 - onPause()
碎片处于暂停状态时调用。 - onStop()
碎片处于停止状态时调用。 - onDestroyView()
碎片中的布局被移除时调用。 - onDestory()
碎片销毁之前调用。 - onDetach()
当碎片和活动解除关联的时候调用。