情景一:Activity中addFragment(new BlankFragment)
生命周期流程:
MainActivity: ========================================onCreate
MainActivity: ========================================onStart
MainActivity: ========================================onPostCreate
BlankFragment: ====================================BlankFragment
BlankFragment: ====================================onCreate
BlankFragment: ====================================onCreateView
BlankFragment: ====================================onActivityCreat
BlankFragment: ====================================onStart
MainActivity: ========================================onResume
BlankFragment: ====================================onResume
按返回键:BlankFragment: ====================================onPause
MainActivity: ========================================onPause
BlankFragment: ====================================onStop
MainActivity: ========================================onStop
BlankFragment: ====================================onDestroyView
BlankFragment: ====================================onDestroy
BlankFragment: ====================================onDetach
MainActivity: ========================================onDestroy按电源键,关闭屏幕:
E/BlankFragment: ====================================onPause
E/MainActivity: ========================================onPause
E/BlankFragment: ====================================onStop
E/MainActivity: ========================================onStop按电源键,唤醒屏幕:
E/MainActivity: ========================================onRestart
E/BlankFragment: ====================================onStart
E/MainActivity: ========================================onStart
E/MainActivity: ========================================onResume
E/BlankFragment: ====================================onResume
规则:
1、在可见状态前,Activity的每个生命周期方法都会【先】Fragment的生命周期方法。
2、当可见状态向不可见状态过度时:Activity的每个生命周期方法都会【后】Fragment的生命周期方法。
3、例外:再上面两种情景下,是没有走Activity的onRestart()方法的(Fragment没有onRestart方法),例外情景:当可见时,按下电源键进行关闭屏幕,再此按下电源键唤醒屏幕时:此时生命周期的流程走向为:Activity的onRestart()----》Fragment的onStart() --》Activity的onStart() ---》Activity的onResume() ---》Fragment的onResume();
【大家发现了:此时的Fragment 的onStart 先于Activity的onStart,但是在第一次创建时,是先走Activity的onStart,再走Fragment的onStart,所以,大家这点要特别注意一下。】