1. 生命周期简介
Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。Fragment状态与Activity类似,也存在如下4种状态:
- 运行:当前Fmgment位于前台,用户可见,可以获得焦点。
- 暂停:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点。
- 停止:该Fragment不可见,失去焦点。
- 销毁:该Fragment被完全删除,或该Fragment所在的Activity被结束。
2. 生命周期状态
Fragment的生命周期与Activity的生命周期对比,如下图所示:
从上图可以看出,Activity中的生命周期方法,Fragment中基本都有,但是Fragment比Activity多几个方法。各生命周期方法的含义如下:
- onAttach() : 当Fragment与Activity发生关联时调用,被附加到Activity中去。
- onCreate(): 系统会在创建Fragment时调用此方法。可以初始化一段资源文件等等。
- onCreateView(): 每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View 组件。
- onActivityCreated(): 当 Fragment 所在的Activity被启动完成后回调该方法。Activity被渲染绘制出来后。
- onStart(): 启动 Fragment 时被回调,此时Fragment可见。
- onResume(): 恢复 Fragment 时被回调,获取焦点时回调。
- onPause(): 暂停 Fragment 时被回调,失去焦点时回调。
- onStop(): 停止 Fragment 时被回调,Fragment不可见时回调。
- onDestroyView(): 销毁与Fragment有关的视图,但未与Activity解除绑定。
- onDestroy(): 销毁 Fragment 时被回调。
- onDetach(): 与onAttach相对应,当Fragment与Activity关联被取消时调用。