Fragment生命周期(add,replace,息屏等情况)
来源:互联网 发布:购物软件哪个好 编辑:程序博客网 时间:2024/06/08 18:47
1.replace(添加到回退栈)
(1)假设线add了一个Frg0,然后通过replace替换为Frg1,则其生命周期如下,可以看到,Frg0只执行到了onDestoryView.
03-14 19:41:15.742 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onCreate: ---Frg0
03-14 19:41:15.742 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onCreateView: ---Frg0
03-14 19:41:15.746 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onActivityCreated: ---Frg0
03-14 19:41:15.747 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg0
03-14 19:41:15.747 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onResume: ---Frg0
03-14 19:41:22.818 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onPause: ---Frg0
03-14 19:41:22.818 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onStop: ---Frg0
03-14 19:41:22.819 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onDestroyView: ---Frg0
03-14 19:41:22.823 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onCreate: ---Frg1
03-14 19:41:22.824 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onCreateView: ---Frg1
03-14 19:41:22.832 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onActivityCreated: ---Frg1
03-14 19:41:22.832 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg1
03-14 19:41:22.833 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onResume: ---Frg1
(2)接着上一步,点击返回键,其生命周期如下,可以知道当Frg0处于可交互状态时,Frg0才会销毁
03-14 19:47:17.315 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onPause: ---Frg1
03-14 19:47:17.315 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onStop: ---Frg1
03-14 19:47:17.315 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onDestroyView: ---Frg1
03-14 19:47:17.316 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onCreateView: ---Frg0
03-14 19:47:17.320 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onActivityCreated: ---Frg0
03-14 19:47:17.320 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg0
03-14 19:47:17.320 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onResume: ---Frg0
03-14 19:47:17.735 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onDestory: ---Frg1
03-14 19:47:17.735 15972-15972/com.example.gxf.fragmentanimtest D/--tag--: onDetach: ---Frg1
2.add(添加到回退栈)
(1)先add一个Frg0,然后add一个Frg1,生命周期如下,可以看到,当添加Frg1时,Frg0仍然处于onResume()状态。
03-14 19:57:58.242 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onCreate: ---Frg0
03-14 19:57:58.242 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onCreateView: ---Frg0
03-14 19:57:58.245 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onActivityCreated: ---Frg0
03-14 19:57:58.245 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg0
03-14 19:57:58.245 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onResume: ---Frg0
03-14 19:58:02.909 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onCreate: ---Frg1
03-14 19:58:02.909 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onCreateView: ---Frg1
03-14 19:58:02.916 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onActivityCreated: ---Frg1
03-14 19:58:02.916 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg1
03-14 19:58:02.917 23376-23376/com.example.gxf.fragmentanimtest D/--tag--:onResume: ---Frg1
(2)点击返回键(从Frg1切换到Frg0),生命周期如下,Frg会完全销毁,Frg0的生命周期没有任何变化(仍处于onResume)
03-14 19:58:10.474 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onPause: ---Frg1
03-14 19:58:10.474 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onStop: ---Frg1
03-14 19:58:10.475 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onDestroyView: ---Frg1
03-14 19:58:10.894 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onDestroy: ---Frg1
03-14 19:58:10.895 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onDetach: ---Frg1
综上:
当用add时点击返回键,前面的Fragment状态不变;当用replace时点击返回键,前面的Fragment会重新执行onCReatView().
3.息屏
03-14 20:21:46.622 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onPause: ---Frg0
03-14 20:21:46.687 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onStop: ---Frg0
再次亮屏
03-14 20:21:47.025 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onStart: ---Frg0
03-14 20:21:47.029 23376-23376/com.example.gxf.fragmentanimtest D/--tag--: onResume: ---Frg0
- Fragment生命周期(add,replace,息屏等情况)
- Fragment 生命周期+replace+add+addToBackStack+remove
- 一道面试题:两个Fragment在replace/add 和 hide/show不同情况下来回跳转生命周期的变化
- Fragment生命周期及add、replace、remove、hide&show方法分析
- android fragment add与replace
- Fragment add 和replace的区别
- fragment中add与replace的区别
- Fragment add、show、hide、replace、remove、
- fragment 生命周期等详解
- Fragment专辑(三):Fragment的添加(add)和替换(replace)的不同
- Android Fragment 真正的完全解析(上) add remove replace detach attach hide show
- Activity跳转,fragment的replace、add、hide,(靠谱)隐藏软件盘 InputMethodManager
- android之fragment的两种使用方式(add和replace方式切换)
- Android Fragment 真正的完全解析(上) add remove replace detach attach hide show
- android之fragment的两种使用方式(add和replace方式切换)
- android之fragment的两种使用方式(add和replace方式切换)
- android之fragment的两种使用方式(add和replace方式切换)
- Fragment 使用add 和 hide 生命周期
- kerkee 在 Android 上的快速上手指南
- 461. Hamming Distance
- JS 实现审核流程状态的动态显示
- 【最大子段和】SDUT 3100 动态规划?
- ajax的traditional属性
- Fragment生命周期(add,replace,息屏等情况)
- KMP——BZOJ3670/Luogu2375 [Noi2014]动物园
- QT多线程中的互斥与同步
- JZOJ5012. 远行
- rxjava2 结合retrofit2进行业务封装
- 关于函数模版编译出现链接错误
- Shell 教程
- WebService代码
- Java中有关this的一个问题