可以忽略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. cf 85 E. Petya and Spiders

    http://codeforces.com/contest/112/problem/E 轮廓线dp.每一个格子中的蜘蛛选一个去向.终于,使每一个蜘蛛都有一个去向,同一时候保证有蜘蛛的格子最少.须要用4 ...

  2. cookie记录用户名和密码

    getAttribute和getParameter的区别: request.getAttribute():是request时设置的变量的值,用request.setAttribute("na ...

  3. python学习笔记--Django入门一 网页显示时间

    我的笔记是学习http://djangobook.py3k.cn/ 课程时做的,这个上边的文章讲的确实是非常的详细,非常感谢你们提供的知识. 上一篇随笔中已经配置好了Django环境,现在继续跟随ht ...

  4. 一个基于MVVM的TableView组件化实现方案

    AITableView https://github.com/chentoo/AITableView cocoapods: pod ‘AITableView’ 做什么用? 这是一个简化UITableV ...

  5. 项目打包 tomcat部署

    IDE: IDEA 1.项目maven管理先执行 clean,再执行 compile 2.如果编译compile不成功,则将 C:\Users\Administrator\.m2\repository ...

  6. 24、Javascript BOM

    BOM(Browser Object Model)浏览器对象模型,一组浏览器提供的API. window对象 window对象表示当前浏览器的窗口,是Javascript的顶级对象,所有创建的对象.函 ...

  7. PHP 根据值查找键名

    array_search (PHP 4 >= 4.0.5, PHP 5) mixed array_search ( mixed $needle , array $haystack [, bool ...

  8. (转)PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $l ...

  9. 学习java随笔第八篇:封装、继承、多态

    java和c#一样都是面向对象的语言. 面向对象的语言有三大特征:封装.继承.多态 封装 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. class Perso ...

  10. oracle学习笔记3:基本的SQL语句

    oracle基本的SQL语句和SQLSERVER基本一样,在这里只简单列出与SQLSERVER不一样的地方 1.select * from orderinfo where address = 'abc ...