Activity和Fragment生命周期对比

19 篇文章 1 订阅
13 篇文章 1 订阅

Fragment生命周期
onAttach
onCreate
onCreateView
onActivityCreate                ______以上相当于Activity的onCreate方法


onStart                             ______相当于Activity的onStart方法
onResume                        ______相当于Activity的onResume方法
onPause                           ______相当于Activity的onPause方法
onStop                             ______相当于Activity的onStop方法


onDestroyView
onDestroy
onDetach                         ______以上相当于Activity的onDestroy方法


当Activity包含一个Fragment的时候,Activity和Fragment生命周期的变化:
Activity(onCreate)---> Fragment(onAttach onCreate onCreateView onActivityCreate)--->
Activity(onStart)---> Fragment(onStart)--->
Activity(onResume)---> Fragment(onResume)--->
Fragment(onPause)---> Activity(onPause)--->
Fragment(onStop)---> Activity(onStop)--->
Fragment(onDestroyView onDestroy onDetach)---> Activity(onDestroy)
由于Fragment依附于Activity,所以启动的时候Activity的方法肯定在前面,Fragment的方法在后面,但是在要销毁的时候,Fragment的方法先执行,再执行Activity的方法。


在宿主Activity中使用hide、show方式切换Fragment的时候,Fragment的生命周期是:
a 初始化
Fragment1(onAttach onCreate onCreateView onActivityCreate) --->  Fragment1(onStart)---> Fragment1(onResume)
Fragment2(onAttach onCreate onCreateView onActivityCreate) --->  Fragment2(onStart)---> Fragment2(onResume)
b Fragment1和Fragment2来回切换都没有回调生命周期
c 当某一个Fragment调用了跳转到另一个Activity的时候(或者按HOME键的时候)
Fragment1(onPause)---> Fragment1(onStop)
Fragment2(onPause)---> Fragment2(onStop)
d 当在一个透明的Activity中弹出一个Dialog时(与Activity的情况相同)
Fragment1(onPause)
Fragment2(onPause)
e 当宿主Activity被销毁的时候
Fragment1(onPause)---> Fragment1(onStop)---> Fragment1(onDestroyView onDestroy onDetach)
Fragment2(onPause)---> Fragment2(onStop)---> Fragment2(onDestroyView onDestroy onDetach)

当采用FragmentStatePagerAdapter适配器加载‘Fragment的时候,Fragment的生命周期同上面的情况相同。
————————————————
版权声明:本文为CSDN博主「木头小颖」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36713816/article/details/80568902

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值