Activity与Fragment之间生命周期比较

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的生命周期同上面的情况相同。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容