activity学习(1) 生命周期理解
可以忽略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) 生命周期理解的更多相关文章
- Android Small插件化框架解读——Activity注册和生命周期
通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...
- 三张图让你高速明确activity与fragment生命周期的异同点
第一张图:activity的生命周期 第二张图:fragment的生命周期 第三张图:activity与fragment生命周期对照 补充:假设你还是不明确,请翻译一下你不理解的相应单词. ----- ...
- Activity完整的生命周期
首语:群里看到一位网友说:你能说出Activity的完整生命周期吗?看到这句话,我也在反思自己,我也是个fresh,所以想找个时间仔细的扒一扒Activity生命周期. 首先拿一张简单而又复杂的生命周 ...
- 多个Activity交互的生命周期:
一.多个Activity交互的生命周期: A Activity打开B Activity的时候: A Activity B Activity ...
- JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期
JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成ser ...
- Activity生命周期理解
在Android应用程序运行时,Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶.随着应用程序之间的切换.关闭等,每个Activity都有可 ...
- android:activity活动的生命周期
掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命 周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的 游刃有余.你的应用程序将会拥有 ...
- Android活动(Activity)创建及生命周期
Activity是Android的门面,可以与用户进行互动的重要模块,凡是在应用中可以看到的东西,都是放在活动中的. 在学习新的技术时,我喜欢将需要学习的技术与自己懂得技术进行类似比较,而活 ...
- react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)
react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...
随机推荐
- cf 85 E. Petya and Spiders
http://codeforces.com/contest/112/problem/E 轮廓线dp.每一个格子中的蜘蛛选一个去向.终于,使每一个蜘蛛都有一个去向,同一时候保证有蜘蛛的格子最少.须要用4 ...
- cookie记录用户名和密码
getAttribute和getParameter的区别: request.getAttribute():是request时设置的变量的值,用request.setAttribute("na ...
- python学习笔记--Django入门一 网页显示时间
我的笔记是学习http://djangobook.py3k.cn/ 课程时做的,这个上边的文章讲的确实是非常的详细,非常感谢你们提供的知识. 上一篇随笔中已经配置好了Django环境,现在继续跟随ht ...
- 一个基于MVVM的TableView组件化实现方案
AITableView https://github.com/chentoo/AITableView cocoapods: pod ‘AITableView’ 做什么用? 这是一个简化UITableV ...
- 项目打包 tomcat部署
IDE: IDEA 1.项目maven管理先执行 clean,再执行 compile 2.如果编译compile不成功,则将 C:\Users\Administrator\.m2\repository ...
- 24、Javascript BOM
BOM(Browser Object Model)浏览器对象模型,一组浏览器提供的API. window对象 window对象表示当前浏览器的窗口,是Javascript的顶级对象,所有创建的对象.函 ...
- PHP 根据值查找键名
array_search (PHP 4 >= 4.0.5, PHP 5) mixed array_search ( mixed $needle , array $haystack [, bool ...
- (转)PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $l ...
- 学习java随笔第八篇:封装、继承、多态
java和c#一样都是面向对象的语言. 面向对象的语言有三大特征:封装.继承.多态 封装 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. class Perso ...
- oracle学习笔记3:基本的SQL语句
oracle基本的SQL语句和SQLSERVER基本一样,在这里只简单列出与SQLSERVER不一样的地方 1.select * from orderinfo where address = 'abc ...