Fragment 生命周期

Fragment和Activity一样,同样拥有自己的生命周期,其声明周期和Activity类似。

1. Fragment的状态和回调

  • 其中Activity主要有运行状态、暂停状态、停止状态、销毁状态这四种。类似的Fragment也会有这几种状态。

1.1 Fragment的状态

1.1.1 运行状态
  • 表示当前的Fragment为可见状态,并且与它所关联的Activity正处于运行状态,该Fragment也处于运行状态。
1.1.2 暂停状态
  • 当一个Activity进入到暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。
1.1.3 停止状态
  • 当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态,或者通过调用FragmentTransaction的remove()、replace()方法将碎片从Activity中移除,但如果在事务提交之前调用了addToBackStack()方法,这是fragment也会进入到停止状态。
  • 总的来说,当Fragment进入到停止状态对于用户来说是完全不可见的,有可能会被系统回收。
1.1.4 销毁状态
  • Fragment总是依附于Activity而存在的,因此当Activity被销毁时,与它相关联的碎片就会进入到销毁状态。或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,这是碎片也会进入到销毁状态。

1.2 Fragment的回调

  • Fragment提供了一系列的回调方法,以覆盖碎片生命周期中的每个环节。其中,Activity中有的回调方法,碎片中几乎都有,不过碎片还提供了一些附加的回调方法。
    1. onAttach()。当Fragment和Activity建立关联的时候调用。
    2. onCreateView()。为Fragment创建视图(加载布局)时调用。
    3. onActivityCreated()。确保与Fragment相关联的Activity一定已经创建完毕的时候调用。
    4. onDestoryView()。当与Fragment关联的视图被移除的时调用。
    5. onDetach()。当碎片和活动解除关联的时候调用。
  • 下图为Fragment的生命周期

2. Fragment的生命周期代码示例

你可能感兴趣的:(Fragment 生命周期)