Fragment生命周期
来源:互联网 发布:网络工程部经理招聘 编辑:程序博客网 时间:2024/06/05 07:39
Fragment生命周期小常识
一、生命周期的作用。
onAttach():fragment已经关联到activity
onCreate() :系统创建fragment的时候回调他,在他里面实例化一些变量
这些个变量主要是:当你 暂停 停止的时候 你想保持的数据
如果我们要为fragment启动一个后台线程,可以考虑将代码放于此处。
参数是:Bundle savedInstance, 用于保存 Fragment 参数, Fragement 也可以
重写 onSaveInstanceState(BundleoutState) 方法, 保存Fragement状态;
可以用于 文件保护
他只调用一次。
onCreateView() :关联XML布局,用于显示UI的
onActivityCreate() :Activity的onCreate生命周期执行完成之后调用这个方法,
一般用于与Activity UI践行交互操作的
onResume():和activity一致 在activity中运行是可见的
激活, Fragement 进入前台, 可获取焦点时激活;onPause() : 和activity一致 其他的activity获得焦点,这个仍然可见
第一次调用的时候,指的是 用户 离开这个fragment(并不是被销毁)
通常用于 用户的提交onStop() : 和activity一致
fragment不可见的, 可能情况:activity被stopped了 OR fragment被移除但被加入到回退栈中
一个stopped的fragment仍然是活着的如果长时间不用也会被移除
onDestoryView() :Fragment中的布局被移除是调用,
表示fragment销毁相关联的ui布局
清除所有跟视图有关的资源
onDestory() :销毁Fragment对象
onDetach :Fragment和activity解除关联时调用 脱离activity
二、应用场景:
切换到该Fragment:
onCreate
onCreateView
onActivityCreated
onStart
onResume
屏幕灭掉:
onPause
onSaveInstanceState
onStop
屏幕解锁:
onStart
onResume
切换到其他Fragment:
onPause
onStop
onDestroyView
切换回本身的Fragment:
onCreateView
onActivityCreated
onStart
onResume
回到桌面:
onPause
onSaveInstanceState
onStop
回到应用:
onStart
onResume
退出应用:
onPause
onStop
onDestroyView
onDestroy
onDetach
三、遇到的那些坑:
横竖屏切换:
1、切换成横屏时
2、切换成竖屏时,发现打印了两次相同的log
3、修改AndroidManifest.xml,把该Activity添加 Android:configChanges="orientation",横屏切换为竖屏
4、竖屏切换为横屏,发现不会再打印相同信息
5、把android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",竖屏切换横屏,就只打印
onConfigChanged
onConfigurationChanged-->
总结 :
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged方法
赏:
- fragment 生命周期
- Fragment生命周期
- Fragment 生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- fragment 生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- fragment 生命周期
- Fragment生命周期
- Fragment 生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- Fragment生命周期
- 进程控制编程
- oracle--1.概述
- Understanding Oracle APEX 5 Application Development, 2nd Edition.pdf 英文原版 免费下载
- NodeJs的应用场景及实践
- 优化sql
- Fragment生命周期
- iOS Xcode 调试OpenGL shader 步骤详解
- Java连Mongodb出错的问题
- LeetCode.176 Second Highest Salary (Limit偏移量运用)
- LeetCode 173. Binary Search Tree Iterator
- 17.12.06,web学习第二十天,还有一年,努力吧青年商城增删改查记忆
- Learning Boost C++ Libraries.pdf 英文原版 免费下载
- 51nod1299 监狱逃离 最小割
- POJ 刷题系列:3299. Humidex