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

Activity和Fragment生命周期变化的更多相关文章

  1. 三张图让你高速明确activity与fragment生命周期的异同点

    第一张图:activity的生命周期 第二张图:fragment的生命周期 第三张图:activity与fragment生命周期对照 补充:假设你还是不明确,请翻译一下你不理解的相应单词. ----- ...

  2. activity 与 fragment生命周期

    一.Activity的生命周期图: 二.Fragment生命周期图 三.对比图 Log数据 Activity﹕    onCreateFragment﹕ onAttachFragment﹕ onCre ...

  3. Android Activity和Fragment生命周期图

  4. Android Activity与Fragment生命周期

  5. Android Activity与Fragment生命周期 对应关系

  6. Activity和Fragment生命周期对比

    版权声明:本文为博主原创文章,未经博主允许不得转载.

  7. 测试Activity和Fragment的生命周期

    Activity的生命周期有7个函数,Fragment的生命周期有11个函数. Activity生命周期除上述6个方法还有一个Restart()方法,该方法在该Activity从不可见(仍存在)到重新 ...

  8. Activity与Fragment

    Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似. Fragment是用来描述一些行为或一部分用户界面在一个Activi ...

  9. 面试 -- fragment生命周期

    Android 3.0 (Api 11)引入: Fragment具有重用,易适配(平板和手机之间的)优点: 依赖Activity,生命周期受到Activity的生命周期影响: fragment生命周期 ...

随机推荐

  1. Java语言基础(四) String和StringBuffer的区别

    Java提供了两个字符串类:String和StringBuffer. String提供了数值不可变的字符串,而StringBuffer提供的字符串对象可以进行修改. 当知道字符数据要改变的时候就可以使 ...

  2. java rest版简单的webservice

    目前的webservice风格,rest应该是其中一种 还有种就是soap,rest是轻量级的,越来越流行.下面举一个简单例子说明下rest的用法. 1. 准备ws的jar和spring的jar,如何 ...

  3. SysErrorMessage 函数和系统错误信息表

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessa ...

  4. 有感,懂市场比懂产品重要,懂产品比懂技术重要——想起凡客诚品和YY语音了

    一个创业公司,最好三样都要有,但应该CEO是懂市场,经理懂产品,程序员最好懂技术厉害一点-这还不算,销售也要厉害一点,不能守株待兔- 美工——有钱最好请个美工,最起码也要请人设计修改一下- 财务——不 ...

  5. 【POJ】2886 Who Gets the Most Candies?

    移动题目相当麻烦. #include <stdio.h> #include <string.h> #define MAXN 500005 #define lson l, mid ...

  6. What does the number on the visual studio solution icon represent?

    The numbers correspond to the internal version numbers of various editions of Visual Studio http://e ...

  7. BZOJ3715: [PA2014]Lustra

    3715: [PA2014]Lustra Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 237  Solved: 149[Submit][Status ...

  8. HDOJ/HDU 2551 竹青遍野(打表~)

    Problem Description "临流揽镜曳双魂 落红逐青裙 依稀往梦幻如真 泪湿千里云" 在MCA山上,除了住着众多武林豪侠之外,还生活着一个低调的世外高人,他本名逐青裙 ...

  9. bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)

    1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 733  Solved: 451[Submit][Status ...

  10. Python中AND-OR的用法

    学习Python中的lambda函数的时候,才发现原来Python中的AND和OR还可以有一些别的用法.Python中的布尔逻辑计算的结果并非返回布尔值,而是返回它们相互之间的某一个.文章的部分例子来 ...