Android Fragment的生命周期
一、Fragment的状态
同Android的Activity生命周期中所类似,Fragment同样有四个状态,只不过有一些区别。
- 运行状态
当一个Fragment是可见的,并且它所关联的Activity正处于运行状态,该Fragment也处于运行状态。 - 暂停状态
当一个Activity进入暂停状态时(由于另一个未占满屏幕的Activity被添加到栈顶),与它关联的可见Fragment就会进入暂停状态。
- 停止状态
当一个Activity进入停止状态,与它相关联的Fragment就会进入停止状态,或者通过调用FragmentTransaction的remove()、replace()方法将Fragment从Activity中移除,但如果在事务提交之前调用addToBackStack()方法,这时Fragment也会进入停止状态。
总的来说,进入停止状态的Fragment对用户来说是完全不可见的,有可能会被系统回收。 - 销毁状态
当Activity被销毁时,与它相关联的Fragment进入销毁状态。或者通过调用FragmentTransaction的**remove()、replace()方法将Fragment从Activity中移除,但事务提交之前没有调用addToBackStack()**方法,Fragment进入销毁状态。
关于Fragment的addToBackStack()方法的相关知识与使用,参照:Fragment的使用及其addToBackStack()方法。
二、Fragment的回调方法与生命周期
Fragment中的回调方法除了Activity中的几个回调方法之外,还包括了一些附加的回调方法,如下:
onAttach():当Fragment和Activituy建立关联的时候调用。
onCreateView():为Fragment创建视图(加载布局)时调用。
onActivityCreated():确保与Fragment相关联的Activity一定已经创建完毕的时候调用。
onDestroyView():当与Fragment关联的View被移除的时候调用。
onDetach():当Fragment和Activity解除关联的时候调用。
Fragment完整的生命周期示意图。
了解Activity的生命周期,对于Fragment的生命周期能够更快速的理解。
参考资料:《第一行代码——Android第2版》