Activity&Fragment生命周期

字数 344阅读 109

转载注明出处: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才停止。

图 - 3 activity的create方法中使用代码动态replace布局添加fragment

Activity的布局中直接使用fragment元素

正常的生命周期讨论范围很重要,可以看见Fragment的生命周期回调先与Activity。

图 - 4 布局中使用Fragment和activity生命周期

多个Activity切换生命周期

  • 上一个Activity会先onPause,等下一个Activity执行onResume显示后,上一个Activity才会执行onStop从视野中消失,所以有时候页面跳转慢,可能是在onPause/onCreate/onStart/onResume方法中做了耗时操作
  • Fragment的生命周期与Activity同步,只要理解了上一张图,这个就很好理解
图 - 5 带fragment的activity切换

推荐阅读更多精彩内容