目录
5.3 Fragment 的生命周期
和 Activity 一样,Fragment 也有自己的生命周期,并且它和 Activity 的生命周期实在是太像 了,我相信你很快就能学会,下面我们马上就来看一下。
5.3.1 Fragment 的状态和回调
还记得每个 Activity 在其生命周期内可能会有哪几种状态吗?没错,一共有运行状态、暂停状 态、停止状态和销毁状态这4种。类似地,每个 Fragment 在其生命周期内也可能会经历这几种 状态,只不过在一些细小的地方会有部分区别。
01 . 运行状态
当一个Fragment 所关联的Activity 正处于运行状态时,该Fragment 也处于运行状态。
02 . 暂停状态
当一个Activity 进入暂停状态时(由于另一个未占满屏幕的Activity 被添加到了栈顶),与 它相关联的Fragment 就会进入暂停状态。
03 . 停止状态
当一个 Activity 进入停止状态时,与它相关联的 Fragment 就会进入停止状态,或者通过调用FragmentTransaction 的 remove()、replace()方法将 Fragment 从 Activity 中移除,但在事务提交之前调用了addToBackStack()方法,这时的 Fragment 也会进入停止状态。总的来说,进入停止状态的 Fragment 对用户来说是完全不可见的,有可能会被系统回收。
04 . 销毁状态
Fragment 总是依附于 Activity 而存在,因此当 Activity 被销毁时,与它相关联的 Fragment 就会进入销毁状态。或者通过调用 FragmentTransaction 的 remove()、 replace()方法将 Fragment 从 Activity 中移除,但在事务提交之前并没有调用 addToBackStack()方法,这时的 Fragment 也会进入销毁状态。
结合之前的 Activity 状态,相信你理解起来应该毫不费力吧。同样地,Fragment 类中也提供了 一系列的回调方法,以覆盖它生命周期的每个环节。其中,Activity 中有的回调方法, Fragment 中基本上也有,不过Fragment 还提供了一些附加的回调方法,下面我们就重点看一 下这几个回调。
- onAttach():当Fragment 和Activity 建立关联时调用。
- onCreateView():为Fragment 创建视图(加载布局&#