可以忽略onWindowFocusChanged、onSaveInstanceState、onRestoreInstanceState几个事件,这几个事件官网中的生命周期里面没有提到、忽略掉这几个方法看起来可能会更加易懂

1、activity 刚开始启动执行的顺序: onCreate()——onStart()——onResume()——onWindowFocusChanged()

2、activity被其它activity覆盖( android:theme="@android:style/Theme.Dialog")或者锁屏执行的顺序:onPause()——onWindowFocusChanged(),暂停当前activity的执行

  2.1、当系统资源不足被,kill掉activity之前前执行:onSaveInstanceState()——onDestory(),kill掉之前要做的一些保存数据的操作可以放到此方法中完成

  2.2、onPause()、onStop(),当被覆盖的activity被完全覆盖时是处在onStop(),当没有被完全覆盖处在onPause()

3、当activity被其它activity覆盖( android:theme="@android:style/Theme.Dialog")回到前台或解锁时执行:onResume()——onWindowFocusChanged()

4、当activity转到其他新的activity或按HOME键执行顺序:onPause()——onWindowFocusChanged()——onSaveInstanceState()——onStop()

5、用户回退至activity执行顺序(没有被系统kill掉的执行顺序):onRestart()——onStart()——onResume()

  5.1、如果已经被kill掉,执行顺序:onCreate()——onStart()——onRestoreInstanceState()——onResume()——onWindowFocusChanged()

6、当用户退出当前activity(通过返回键退出),执行顺序:onPause()——onWindowFocusChanged()——onSaveInstanceState()——onStop()——onDestory()

7、用户转屏时是销毁掉当前的activity,然后重新生成新的activity,所以执行顺序如下:

onPause()(——onWindowFocusChanged())——onSaveInstanceState()——onStop()——onDestory()——onCreate()——onStart()——onRestoreInstanceState()——onResume()——onWindowFocusChanged()

  7.1、此处经测试发现onWindowFocusChanged方法没有被调用

补充:

onSaveInstanceState:此方法貌似只有在activity被遮挡、按了home键、或者打开新的activity覆盖才会调用。返回按钮、系统kill等直接触发onDestory()方法的操作都不会调用此方法

onRestoreInstanceState:此方法只有在需要恢复的时候调用(不是调用了onSaveInstanceState,重新打开时就一定调用onRestoreInstanceState,比如后台的activity被系统kill掉,重新打开时就不会调用onRestoreInstanceState了)

以上都是个人理解,如果有不对之处,希望指正,多谢。

activity学习(1) 生命周期理解的更多相关文章

  1. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

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

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

  3. Activity完整的生命周期

    首语:群里看到一位网友说:你能说出Activity的完整生命周期吗?看到这句话,我也在反思自己,我也是个fresh,所以想找个时间仔细的扒一扒Activity生命周期. 首先拿一张简单而又复杂的生命周 ...

  4. 多个Activity交互的生命周期:

    一.多个Activity交互的生命周期: A Activity打开B Activity的时候:        A Activity                    B Activity     ...

  5. JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期

    JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成ser ...

  6. Activity生命周期理解

    在Android应用程序运行时,Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶.随着应用程序之间的切换.关闭等,每个Activity都有可 ...

  7. android:activity活动的生命周期

    掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命 周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的 游刃有余.你的应用程序将会拥有 ...

  8. Android活动(Activity)创建及生命周期

       Activity是Android的门面,可以与用户进行互动的重要模块,凡是在应用中可以看到的东西,都是放在活动中的.   在学习新的技术时,我喜欢将需要学习的技术与自己懂得技术进行类似比较,而活 ...

  9. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

随机推荐

  1. Struts中常用的几个技术

    Struts ognl表达式语言几个符号 #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 代码示例一:在action类的一个方法中讲一个值存入 ...

  2. 从零开始学C++之数据封装与抽象:分别用C和C++来实现一个链栈

    下面通过分别用C和C++来实现一个链栈(链表实现),从中体会数据封装抽象的思想: C语言实现:  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  3. Cocos2d-x 3.1.1 学习日志9--一“上一下其乐无穷”游戏开发系列一

    下载地址:http://app.mi.com/search?keywords=%E4%B8%80%E4%B8%8A%E4%B8%80%E4%B8%8B%E5%85%B6%E4%B9%90%E6%97% ...

  4. Div+css中ul ol li dl dt dd使用

    ol 有序列表.<ol><li>……</li><li>……</li><li>……</li></ol>表现 ...

  5. IT技能栈

    C++.JAVA.Objective-C 基本数据类型,集合类如字符串数组字典,自定义数据对象 内存布局,编译运行期的变化 语言特性 输入输出流,文件流,序列化 多线程,并发控制,线程池,锁 网络编程 ...

  6. ubuntu下创建c语言程序之hello world

    将要学习c语言了,先记录一下在ubuntu下,使用vim创建一个最基本的hello world程序: 打开终端,使用cd命令转到操作的目录,如我在home下的program files文件内创建, 就 ...

  7. samba环境搭建

    1.安装samba软件 sudo apt-get install samba cifs-utils samba-common 2.创建与windows共享目录 mkdir share chmod 77 ...

  8. Base64的Java代码实现

    欢迎拍砖~ 在数据二进制和byte互相转换的地方方法写得有点挫,不知道有没有更好的方法~ 顺便复习了java的一些基础东西,如位操作,原码反码补码 可以在这篇blog里学习到详细的知识点:http:/ ...

  9. 在eclipse中部署发布web项目 和 更改eclipseweb项目发布的路径

    我的工作空间:d:workspaceweb项目名称:xxx在eclipse配置完tomcat后,发布到的路径是 d:\workspace\.metadata\.plugins\org.eclipse. ...

  10. Java SE (1)之 JFrame 组件 BorderLayout 布局

    JAVA 初期,练习SE ,桌面程序, package com.sunzhiyan; import java.awt.*; import java.awt.event.*; import javax. ...