情形一:启动应用加载Activity和Fragment

Activity::onCreate

Fragment::onAttach

Fragment::onCreate

Fragment::onCreateView

Fragment::onActivityCreate

Activity::onStart

Fragment::onSatrt

Activity::onResume

Fragment::onResume

情形二:fragA->fragB->fragA(Fragment不加入回退栈)

销毁FragmentA:

启动FragmentB:

销毁FragmentB:

启动FragmentA:

启动过程如下

onAttach

onCreate

onCreateView

onActivityCreate

onSatrt

onResume

销毁过程如下:

onPause

onStop

onDestroyView

onDestroy

onDetach

在不加入回退栈的情况下,无论多少Fragment之间的切换,都遵循启动下一个,销毁上一个的原则,在屏幕不旋转的情况下Activity是不会发生任何变化的

情形三:旋转Fragment(与加不加入回退栈没关系,过程都一样)

Activity和Fragment都会被销毁,其中销毁过程Fragment会保存状态

Fragment::onPause
Activity::onPause
Fragment::onSaveInstanceState(保存销毁前的状态)
Fragment::onStop
Activity onStop
Fragment::onDestroyView
Fragment::onDestroy
Fragment::onDetach
Activity::onDestroy

创建Activity和Fragment(与一开始启动应用过程相同)
Activity::onCreate
Fragment::onAttach
Fragment::onCreate
Fragment::onCreateView
Fragment::onActivityCreated
Fragment::onAttach
Fragment::onCreate
Fragment::onCreateView
Fragment::onActivityCreated

Activity onStart
Fragment::onStart
Fragment::onStart

Activity::onResume
Fragment::onResume
Fragment::onResume

情形四:FragmentA->FragmentB->FragmentA(两者都加入回退栈)

停止FragmentA,但是不销毁,与不加入回退栈相比唯一的不同就是不会被销毁

FragmentA::onPause
FragmentA::onStop
FragmentA::onDestroyView

启动FragmentB

"恢复"FragmentA,这种恢复会从Fragment的onCreateView开始,重新绘制页面,所以之前的所有数据都已经不在了,这就涉及到Fragment的状态保存(下节待续)

onCreateView
onActivityCreated
onStart
onResume

最新文章

  1. springboot maven install 找不到符号
  2. java 24 - 6 GUI之 创建只能输入数字的文本框
  3. springmvc4+hibernate4+spring4注解一对多级联保存
  4. 堆block和栈block的区分
  5. CentOS 6.4安装Kangle面板
  6. TreeView控件的CheckBox级联选中或取消
  7. node搜索codeforces 3A - Shortest path of the king
  8. C#实现异步编程的两个简单机制(异步委托&定时器)及Thread实现多线程
  9. 解决WEB(apache)服务器time_wait过高的性能优化过程
  10. wpf的学习日志(一)
  11. Eclipse使用之杂七杂八
  12. 在python中编写socket服务端模块(二):使用poll或epoll
  13. WCF技术剖析之八:ClientBase<T>中对ChannelFactory<T>的缓存机制
  14. C++中出现的计算机术语2
  15. 使用ListView控件展示数据
  16. MineSite
  17. Nginx详解五:Nginx基础篇之HTTP请求
  18. Awesome Python 中文版
  19. javascript中的for in循环和for in循环的使用陷阱
  20. Spring MVC异常统一处理的三种方式

热门文章

  1. 修改Delphi工具控件的默认字体
  2. 大整数相乘的C实现
  3. Android MAVEN项目标准目录结构
  4. bzoj1853 bzoj2393
  5. nodejs之日志管理
  6. 数学(概率):HNOI2013 游走
  7. Linux学习笔记6——映射虚拟内存
  8. 【算法入门】广度/宽度优先搜索(BFS)
  9. StoryBoard 的使用
  10. (转载)关于having 1=1 和group by 爆表的思考和总结