一、Fragment生命周期
1.初次切到Fragment: onAttach() --> onCreate() --> onCreateView() --> onActivityCreated() --> onStart() --> onResume()
2.屏幕锁屏: onPause() --> onStop()
3.屏幕解锁: onStart() --> onResume()
4.切到其他Fragment: onPause() --> onStop() --> onDestroyView()
5.切回原来Fragment: onCreateView() --> onActivityCreated() --> onStart() --> onResume()
6.Home键到桌面: onPause() --> onStop()
7.回到应用: onStart() --> onResume()
8.退出应用: onPause() --> onStop() --> onDestroyView() --> onDestroy() --> onDetach()
二、Activity生命周期和Fragment生命周期的关系
创建时的回调函数顺序:
Activity * onCreate()
Fragment * onAttach() --> onCreate() --> onCreateView() --> onActivityCreated()
Activity * onStart()
Fragment * onStart()
Activity * onResume()
Fragment * onResume()
销毁时的回调函数顺序:
Fragment * onPause()
Activity * onPause()
Fragment * onStop()
Activity * onStop()
Fragment * onDestroyView() --> onDestroy() --> onDetach()
Activity * onDestory()
三、Activity和Fragment最大的区别:
Activity停止状态时会被自动保存到系统维护的栈内,而Fragment必须明确调用addToBackStack()才会被保存到Activity维护的栈内。