转载注明出处:http://www.jianshu.com/p/ff8c1d809068
每次去查看Activity和Fragment交叉时候的生命周期感觉都比较乱,网上的文章写的实在是不想吐槽,直接自己撸了一发。
工程地址:https://github.com/Kyogirante/AFLifeCiecleDemo
Fragment之间切换生命周期
add方式
未调用hide方法,所以没有触发onHiddenChanged回调
图 - 1 add方式添加再返回replace方式
图 - 2 replace方式添加并返回Activity的onCreate()方法中使用代码加载Fragment
这个一般不在正常的生命周期讨论范围内,只是个人比较好奇。
如果在Activity的某个生命周期动态载入Fragment,Fragment的生命周期直接会与Activity生命周期对齐,例如下图,Fragment生命周期直接走到了onStart才停止。
Activity的布局中直接使用fragment元素
正常的生命周期讨论范围很重要,可以看见Fragment的生命周期回调先与Activity。
图 - 4 布局中使用Fragment和activity生命周期多个Activity切换生命周期
- 上一个Activity会先onPause,等下一个Activity执行onResume显示后,上一个Activity才会执行onStop从视野中消失,所以有时候页面跳转慢,可能是在onPause/onCreate/onStart/onResume方法中做了耗时操作
- Fragment的生命周期与Activity同步,只要理解了上一张图,这个就很好理解
网友评论