Fragment 深度解析_4 : onSaveInstanceState方法回调时机

此次我们着重测试onSaveInstanceState回调方法。

测试元素

  • FragmentLifecycle
  • FragmentLifecycle2

测试过程

  • 步骤一:首先显示FragmentLifecycle
  • 步骤二:FragmentLifecycle2替换FragmentLifecycle并加入到回退栈中
  • 步骤三:按电源 键关闭屏幕
  • 步骤四:按电源键打开屏幕
  • 步骤五:按home键回到首屏
  • 步骤六:按App图标返回界面
  • 步骤七:按返回键

步骤一:首先显示FragmentLifecycle

Fragment 深度解析_4 : onSaveInstanceState方法回调时机_第1张图片 这步不用特别描述,就是一个Fragment的正常生命周期

步骤二:FragmentLifecycle2替换FragmentLifecycle并加入到回退栈中
Fragment 深度解析_4 : onSaveInstanceState方法回调时机_第2张图片

上面步骤中的测试可以看出FragmentLifecycle2在替换FragmentLifecycle的过程
1、FragmentLifecycle2 首先执行onAttach->onCreate :创建FragmentLifecycle2
2、FragmentLifecycle 执行 onPause->onStop->onDestoryView:先由显示状态转为隐藏状态,然后销毁FragmentLifecycle自己的View
3、FragmentLifecycle2:onCreateView->onViewCreated->onActivityCreated->onStart->onResume 等到FragmentLifecycle的View销毁以后,开始创建自己的View,然后显示到屏幕上

步骤三:按电源 键关闭屏幕
在这里插入图片描述

分析:
1、正在显示的FragmentLifecycle2 首先执行:onPause:由可编辑状态到不可编辑
2、FragmentLifecycle:onSaveInstanceState 保存自己的状态
3、FragmentLifecycle2: onSaveInstanceState 保存自己的状态
4、FragmentLifecycle2:onStop由不可编辑状态到隐藏状态。

步骤四:按电源键打开屏幕在这里插入图片描述

分析
FragmentLifecycle2:onStart->onResume : 由隐藏专为显示

步骤五:按home键回到首屏
在这里插入图片描述

效果同 步骤三

步骤六:按App图标返回界面
在这里插入图片描述

效果同 步骤四

步骤七:按返回键
第一次按返回键
Fragment 深度解析_4 : onSaveInstanceState方法回调时机_第3张图片
第二次按返回键
在这里插入图片描述

总结

onSaveInstanceState调用的操作
1、按home键返回桌面
2、按电源键关闭屏幕
分析
在关闭屏幕或者我们的程序转到后台运行的时候,程序当前存活的Fragment都会调用onSaveInstanceState方法。

你可能感兴趣的:(安卓最基础知识,安卓基础)