一、Fragment生命周期图:
二、生命周期的说明1:
fragment被创建的时候,经历包含onAttach、onCreate、onCreateView、onActivityCreated方法;fragment对用户可见的时候,经历包含onStart、onResume方法;fragment进入“后台模式”的时候,经历onPause、onStop方法;fragment被销毁了(或者持有它的activity被销毁了),经历包含onPause、onStop、onDestroyView、onDestroy、onDetach方法;并且可用onCreate、onCreateView、onActivityCreated方法Bundle对象保存一个fragment的对象。
- onAttach:当Fragment与Activity发生关联时调用
- onCreate:创建Fragment时被回调,经历暂停或停止状态继而恢复后,想保留Fragment的基本组件,则在此进行初始化。
- onCreateView:首次绘制页面时候调用,在此可以创建View,也可以返回null,这样不建议耗时操作。
- onActivityCreated:Fragment绑定Activity,在onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,不能在此之前跟Activity进行交互。
- onStart:启动 Fragment 时被回调,此时Fragment可见,只是还没有在前台显示,因此无法与用户进行交互
- onResume:Fragment在前台可见,处于活动状态,用户可与之交互
- onPause:Fragment处于暂停状态,但依然可见,用户不能与之交互
- onStop:停止Fragment回调,Fragment完全不可见
- onDestoryView:销毁与Fragment有关的视图,但未与Activity解除绑定
- onDestory:销毁 Fragment 时被回调,通常按Back键退出或者Fragment被回收时调用此方法,此后接onDetach
- onDetach:与onAttach相对应,当Fragment与Activity关联被取消时调用
- setUserVisibleHint:调用次方法可以设置Fragment可见或者不可见。可以调用getUserVisibleHint()获得Fragment的可见或不可见状态,如果可见则进行懒加载操作
三、生命周期说明2:
onAttach()
:即使在onCreate()之前,也会首先调用此方法,让我们知道您的片段已附加到活动中。 您通过了将托管您的片段的活动onCreateView()
:当片段第一次绘制其UI时,系统调用此回调。 要为片段绘制UI,必须从此方法返回View组件,该组件是片段布局的根。 如果片段不提供UI,我们可以返回nullonViewCreated()
: 将在onCreateView()之后调用。 这在继承onCreateView()实现时特别有用,但是我们需要配置结果视图,例如使用ListFragment以及何时设置适配器onActivityCreated()
: 将在onCreate()和onCreateView()之后调用,以指示活动的onCreate()已完成。 如果需要根据活动的onCreate()完成其工作的片段中需要初始化的内容,则可以将onActivityCreated()用于该初始化工作onStart()
: 一旦片段可见,就会调用onStart()方法onPause()
: 系统调用此方法作为用户离开该片段的第一个指示。 通常,您应该在此处提交应保留在当前用户会话之外的任何更改。onStop()
: 片段将通过调用onStop()停止onDestroyView()
: 在onDestroy()之前调用。 这与设置UI的onCreateView()相对。 如果需要针对UI进行清理,则可以将该逻辑放在onDestroyView()中。onDestroy()
: 调用onDestroy()进行片段状态的最终清理,但不能保证由Android平台调用。onDetach()
: 在onDestroy()之后调用,以通知该片段已从其托管活动中取消关联