情形一:启动应用加载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

转载于:https://www.cnblogs.com/gzdx-tjh/p/4923331.html

Activity和Fragment生命周期变化相关推荐

  1. Lifecycle Activity和Fragment生命周期感知组件 LifecycleObserver MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. activity和fragment生命周期

    activity和fragment生命周期看这两张图片就可以清晰的知道四大组件之一的activity和碎片的运作流程:如果想亲自看看它在代码中是运作流程就可以打Log看下,由于这样代码量有点多,而且简 ...

  3. android屏幕旋转生命周期,Activity、Fragment生命周期---横竖屏切换的生命周期

    先贴出一张大家众所周知activity流程图 onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态.onStart():A ...

  4. android gilde生命周期管理,Glide原理之Activity、Fragment生命周期监听(三)

    Glide中一个重要特性是Request可以随Activity或Fragment的onStart而resume,onStop而pause,onDestroy而clear,从而节约流量和内存,并且防止内 ...

  5. ViewPager切换Fragment生命周期变化

    很久没有写博客了,今天学习了MD的TabLayout ,使用到了ViewPager,于是对于很久以来的一个疑问:ViewPager切换Fragment生命周期是如何变化的进行了一个测试. 本文研究了: ...

  6. Android开发之常见面试题Activity跳转生命周期变化

    现在问生命周期一般不会问7个而是会连着问你两个页面生命周期的变化: 例如ActivityA->跳转到ActivityB的时候两个页面连续的生命周期如下图: 2020-09-07 17:31:28 ...

  7. 屏幕横竖发生变化时,当前Activity发生的生命周期变化

    在手机屏幕发生屏幕横竖方向变化时,当前的Activity的生命周期变化为:(如有错误,一起讨论~) 设此时的Acitivty为ActivityA: ActivityA.onPause> Acti ...

  8. Activity与Fragment生命周期

    转载于:https://www.cnblogs.com/gyzboy/p/4548903.html

  9. Fragment生命周期详解

    关于Fragment的生命周期,博主写过Activity与Fragment生命周期详解,基本上把Fragment的生命周期详细介绍过,但是那仅仅是创建一个Fragmnet时的生命周期,而事实上Frag ...

最新文章

  1. 一.vtun源码学习笔记
  2. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...
  3. JavaScript面向对象(一)——JS OOP基础与JS 中This指向详解
  4. LeetCode 311. 稀疏矩阵的乘法
  5. 搭建Pxe服务器无人听应答全自动网络安装VMWare esxi 6.0系统
  6. 微课|玩转Python轻松过二级(1.6节):导入和使用标准库、扩展库对象
  7. 每天一道博弈论之“巴什博弈”
  8. Python音乐播放器-美观-简约-本地
  9. 数据清洗与数据预处理浅析
  10. 【OpenCv3】 VS C++ (五):SLIC超像素分割算法
  11. 将数组中的数逆序存放
  12. 免ajax省市三级联动:http://runjs.cn/detail/rcsqficf
  13. 解压jar包修改配置文件,解压、修改、压缩、运行
  14. docker-redis
  15. MySQL中,对结果或条件进行字符串拼接
  16. stack-es-标准篇-ElasticsearchClient-fields
  17. 【Python语言基础】——Python 删除文件
  18. linux赛门铁克扫描,赛门铁克数据扫描程序(Symantec Data Scanner, SDS)技术简介
  19. veins车载通信仿真框架(1)--veins安装
  20. 16 位 CRC 查表法的简单使用方法

热门文章

  1. 赫夫曼树的创建,赫夫曼编码的原理及使用
  2. Cubist software
  3. 绝对定位position:absolute;实现居中对齐
  4. js实现input框添加移除属性
  5. [Creo 3.0] 查看点的坐标, 查看点相对坐标(自建坐标系)
  6. mysql横向分区_MySQL 横向表分区之RANGE分区小结
  7. 北京高端商场SKP-S周年庆,将带来史诗级《东方恒变》沉浸式艺术展
  8. 5个JavaScript 轮播库
  9. 独行月球能投资吗?还有份额吗?快上映了?
  10. 一个Python爬虫案例,带你掌握xpath数据解析方法!