Android学习|Fragment——03.Fragment的生命周期

一、Fragment生命周期图

请添加图片描述

二、不同操作下fragment周期状态

1.打开有fragment的界面

onCreate() -> onCreateView() ->onActivityCreated() ->onStart() ->onResume()

2.按下主屏键

onPause() - >onStop()

3.重新打开界面

onStart() ->onResume()

4.按后退键

onPause()->onStop()->onDestroyView()->onDestroy()->onDetach()

5.当前fragment打开新的fragment替换

是否添加 transaction.addToBackStack(null);让fragment被替换时入栈,效果不同

a、fragment入栈

onPause()->onStop()->onDestroyView()

b、fragment未入栈

onPause()->onStop()->onDestroyView()->onDestroy()->onDetach()

6.又换回刚才的fragment

onCreate() -> onCreateView() ->onActivityCreated() ->onStart() ->onResume()

7.清除后台

onDestroyView()->onDestroy()->onDetach()


演示
1.打开有fragment的界面
请添加图片描述

2.按下主屏键
请添加图片描述

3.重新打开界面
请添加图片描述

4.按后退键
请添加图片描述

5.当前fragment打开新的fragment替换
a、添加了 transaction.addToBackStack(null);让fragment被替换时入栈
请添加图片描述
b、没有添加了 transaction.addToBackStack(null);让fragment被替换时直接销毁请添加图片描述

6.又换回刚才的fragment
请添加图片描述

7.清除后台
请添加图片描述

三、Fragment生命周期注意事项

1、将来开发者会围绕fragment生命周期花很多时间来解决问题

2、Fragment的使用一定是需要在生命周期函数onAttach与onDetach之间

3、Fragment的使用—定要遵守生命周期管理的规则,在正确的地方写恰当的代码


版权声明:本文为weixin_52551903原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。