前提:Activity中包含有Fragment

1、创建Activity:

Activity onCreate() ------- Fragment onAttach() ------- Fragment onCreate() ------ Fragment onCreateView() ------ Fragment onViewCreated() ----- Fragment onActivityCreated() ----

Fragment onStart() ------ Activity onStart() ----- Activity onResume() ------ Fragment onResume()

2、息屏 或 切换到任务列表:

Fragment onPause() ----- Activity onPause() ----- Fragment onStop() ------ Activity onStop()

3、亮屏 或 从任务列表切回来 或 从桌面切回来:

Activity onRestart() ----- Fragment onStart() ------ Activity onStart() ------ Activity onResume() -----

Fragment onResume()

4、切换到桌面 (点击Home键):

Fragment onPause() ----- Activity onPause() ----- Fragment onStop() ----- Activity onStop()

5、销毁Activity:

Fragment onPause() ---- Activity onPause() ----- Fragment onStop() ------ Activity onStop() ------

Fragment onDestroyView() ----- Fragment onDestroy() ----- Fragment onDetach() ------ 

Activity onDestroy()

红色字体是Activity的生命周期,黑色字体是Fragment的;

总结:1、Activity的生命周期长于Fragment,Activity最先创建最后销毁;

          2、只有Activity onCreate、onRestart、onResume函数早于Fragment对应函数,其他的生命周期函数都晚于Fragment对应函数;

          3、Activity和Fragment生命周期是缠绕式的,并不是Activity作为大哥都把一系列周期都执行完毕了,才让Fragment执行。

好了,又可以愉快玩耍了。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐