1.当一个fragment被创建的时候,它会经历以下状态.。
onAttach() : fragment已经关联到activity
onCreate():
系统创建fragment的时候回调他,在他里面实例化一些变量。
这些个变量主要是:当你 暂停 停止的时候 你想保持的数据
如果我们要为fragment启动一个后台线程,
可以考虑将代码放于此处.参数是:Bundle savedInstance,
用于保存 Fragment 参数, Fragement 也可以
重写 onSaveInstanceState(BundleoutState) 方法,
onCreateView()
第一次使用的时候 fragment会在这上面画一个layout出来, 为了可以画控件 要返回一个 布局的view,也可以返回null。
当系统用到fragment的时候 fragment就要返回他的view,越快越好 ,所以尽量在这里不要做耗时操作,比如从数据库加载大量数据显示listview,
当然线程还是可以的。
给当前的fragment绘制ui布局,可以使用线程更新UI,说白了就是加载fragment的布局的。
这里一般都先判断是否为null。
onActivityCreated()
当Activity中的onCreate方法执行完后调用。
当执行onActivityCreated()的时候 activity的 onCreate才刚完成。
所以在onActivityCreated()调用之前 activity的onCreate可能还没有完成,
所以不能再onCreateView()中进行 与activity有交互的UI操作,UI交互操作可以在onActivityCreated()里面进行
2.当这个fragment对用户可见的时候,它会经历以下状态。
onStart() 和activity一致,启动Fragement 启动时回调,,此时Fragement可见。
onResume()和activity一致 在activity中运行是可见的。激活,Fragement 进入前台, 可获取焦点时激活.
onPause() 和activity一致 其他的activity获得焦点,这个仍然可见第一次调用的时候,指的是 用户 离开这个fragment(并不是被销毁)通常用于 用户的提交(可能用户离开后不会回来了)
onStop() 和activity一致, fragment不可见的, 可能情况:activity被stopped了OR fragment被移除但被,加入到回退栈中,一个stopped的fragment仍然是活着的如果长时间不用也会被移除。
onDestroyView()
Fragment中的布局被移除时调用。\表示fragemnt销毁相关联的UI布局, 清除所有跟视图相关的资源。
3.fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
onAttached() —— 当fragment和activity关联之后,调用这个方法.
onCreateView() —— 创建fragment中的视图的时候,调用这个方法.
onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。
1.当一个fragment被创建的时候,它会经历以下状态.。
onAttach()
onCreate()
onCreateView()
onActivityCreated()
2.当这个fragment对用户可见的时候,它会经历以下状态。
onStart()
onResume()
3.当这个fragment进入“后台模式”的时候,它会经历以下状态。
onPause()
onStop()
4.当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
onPause()
onStop()
onDestroyView()
onDetach()
5.就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate()
onCreateView()
onActivityCreated()
2020年6月18日 21:08:02 新增
fragment生命周期
Fragment生命周期方法:
onAttach(): 完成Fragment和Activity的绑定,参数中的Activity即为要绑定的Activity,可以进行赋值等操作。
onCreate() : 完成Fragment的初始化
onCreateView() : 加载Fragment布局,绑定布局文件
onActivityCreated() : 表名与Fragment绑定的Activity已经执行完成了onCreate,可以与Activity进行交互操作。
onStart() : Fragment变为可见状态
onResume() : Fragment变为可交互状态
onPause(): Fragment变为不可交互状态(不代表不可见)
onSaveInstanceState():保存当前Fragment的状态。记录一些数据,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。
onStop(): Fragment变为不可见状态
onDestroyView() : 销毁Fragment的有关视图,但并未和Activity解绑,可以通过onCreateView()重新创建视图。Fragment销毁时或者ViewPager+Fragment情况下会调用
onDestroy() : 销毁Fragment时调用。
onDetach() : 解除和Activity的绑定。Fragmen销毁最后一步Activity启动时:
A.onCreate
A.onStart 执行中
F.onAttach
F.onCreate
F.onCreateView
F.onActivityCreated
F.onStart
A.onStart 结束
A.onResume
F.onResume