先来一张经典的生命周期图:
-------------------------------------------------------------
工程代码: ActivityLifeCycle.zip
--------------------------------------------------------------
1. 启动Activity 1:
08-24 17:24:51.760: D/CARLOZ-A1(20109): onCreate
08-24 17:24:51.760: D/CARLOZ-A1(20109): onStart
08-24 17:24:51.760: D/CARLOZ-A1(20109): onResume
1.1. 返回键 关闭Activity 1:
08-24 17:25:45.960: D/CARLOZ-A1(20109): onPause
08-24 17:25:46.790: D/CARLOZ-A1(20109): onStop
08-24 17:25:46.790: D/CARLOZ-A1(20109): onDestroy
1.2 HOME键回主屏,再从Recent Task中重新打开Activity1
08-24 17:26:37.610: D/CARLOZ-A1(20109): onPause
08-24 17:26:38.340: D/CARLOZ-A1(20109): onStop 从recent task中重新打开Activity1
08-24 17:26:59.380: D/CARLOZ-A1(20109): onRestart
08-24 17:26:59.380: D/CARLOZ-A1(20109): onStart
08-24 17:26:59.380: D/CARLOZ-A1(20109): onResume
1.3 HOME键回主屏,从Recent Task中杀死Activity1, 在从Launcher打开Activity1
08-24 17:28:06.670: D/CARLOZ-A1(20109): onPause
08-24 17:28:07.450: D/CARLOZ-A1(20109): onStop 08-24 17:28:15.860: D/CARLOZ-A1(22178): onCreate
08-24 17:28:15.860: D/CARLOZ-A1(22178): onStart
08-24 17:28:15.860: D/CARLOZ-A1(22178): onResume
2. 两个Activity切换
2.1 Activity1 打开Activity 2,再用返回键返回Activity1
08-24 17:32:33.150: D/CARLOZ-A1(24696): onPause
08-24 17:32:33.200: D/CARLOZ-A2(24696): onCreate
08-24 17:32:33.210: D/CARLOZ-A2(24696): onStart
08-24 17:32:33.210: D/CARLOZ-A2(24696): onResume
此时Activity2 完全覆盖Activity 1
08-24 17:32:33.750: D/CARLOZ-A1(24696): onStop 从Activity 2 返回Activity 1
08-24 17:34:06.330: D/CARLOZ-A2(24696): onPause
08-24 17:34:06.360: D/CARLOZ-A1(24696): onRestart
08-24 17:34:06.370: D/CARLOZ-A1(24696): onStart
08-24 17:34:06.370: D/CARLOZ-A1(24696): onResume
08-24 17:34:06.790: D/CARLOZ-A2(24696): onStop
08-24 17:34:06.790: D/CARLOZ-A2(24696): onDestroy
2.2 将Activity2 换成 Dialog(不能完全覆盖Activity1)
08-24 17:37:39.680: D/CARLOZ-A1(26589): onPause
08-24 17:37:39.740: D/CARLOZ-A2(26589): onCreate
08-24 17:37:39.740: D/CARLOZ-A2(26589): onStart
08-24 17:37:39.740: D/CARLOZ-A2(26589): onResume
可以看到,Activity1 不再执行onStop 从Activity2返回Activity1
08-24 17:38:15.180: D/CARLOZ-A2(26589): onPause
08-24 17:38:15.220: D/CARLOZ-A1(26589): onResume 可以看到Activity1 也不再执行onStart方法
08-24 17:38:15.290: D/CARLOZ-A2(26589): onStop
08-24 17:38:15.290: D/CARLOZ-A2(26589): onDestroy
2.2.1 Activity2是dialog, 点击Recent Task
08-24 17:40:42.000: D/CARLOZ-A2(26589): onPause
08-24 17:40:42.010: D/CARLOZ-A1(26589): onStop
08-24 17:40:42.080: D/CARLOZ-A2(26589): onStop 从Recent Task状态返回
08-24 17:41:24.430: D/CARLOZ-A1(26589): onRestart
08-24 17:41:24.440: D/CARLOZ-A1(26589): onStart
08-24 17:41:24.440: D/CARLOZ-A2(26589): onRestart
08-24 17:41:24.440: D/CARLOZ-A2(26589): onStart
08-24 17:41:24.440: D/CARLOZ-A2(26589): onResume
3. 单个Activity转屏
08-24 17:43:56.050: D/CARLOZ-A1(26589): onPause
08-24 17:43:56.050: D/CARLOZ-A1(26589): onStop
08-24 17:43:56.050: D/CARLOZ-A1(26589): onDestroy 08-24 17:43:56.210: D/CARLOZ-A1(26589): onCreate
08-24 17:43:56.210: D/CARLOZ-A1(26589): onStart
08-24 17:43:56.210: D/CARLOZ-A1(26589): onResume
4. Activity2是Dialog的状态下转屏
08-24 17:43:11.470: D/CARLOZ-A2(26589): onPause
08-24 17:43:11.470: D/CARLOZ-A2(26589): onStop
08-24 17:43:11.470: D/CARLOZ-A2(26589): onDestroy
08-24 17:43:11.630: D/CARLOZ-A2(26589): onCreate
08-24 17:43:11.630: D/CARLOZ-A2(26589): onStart
08-24 17:43:11.630: D/CARLOZ-A2(26589): onResume 08-24 17:43:11.650: D/CARLOZ-A1(26589): onStop
08-24 17:43:11.650: D/CARLOZ-A1(26589): onDestroy
08-24 17:43:11.780: D/CARLOZ-A1(26589): onCreate
08-24 17:43:11.790: D/CARLOZ-A1(26589): onStart
08-24 17:43:11.800: D/CARLOZ-A1(26589): onResume
08-24 17:43:11.820: D/CARLOZ-A1(26589): onPause
注意: 有Dialog主题的Activity2会导致 Activity1执行 onPause,但是纯粹的Dialog却不能触发Activity1执行onPause
-------------------------------------------------------------
工程代码: ActivityLifeCycle.zip
--------------------------------------------------------------
Activity生命周期回顾的更多相关文章
-
Android开发--Activity生命周期回顾理解
Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servl ...
-
基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...
-
喜闻乐见-Activity生命周期
Activity的生命周期,对于Android开发者来说,再熟悉不过了.但是我们接触到的资料,绝大部分都只是谈了一些表面上的东西,例如各个回调的顺序等等.本文试图换个角度来讲解,也希望对各位读者有所帮 ...
-
基础总结篇之一:Activity生命周期[转]
from:http://blog.csdn.net/liuhe688/article/details/6733407 基础总结篇之一:Activity生命周期 子曰:溫故而知新,可以為師矣.< ...
-
onWindowFocusChanged重要作用 and Activity生命周期
onWindowFocusChanged重要作用 Activity生命周期中,onStart, onResume, onCreate都不是真正visible的时间点,真正的visible时间点是onW ...
-
[转]基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思 ...
-
Android——Activity生命周期(转)
Activity生命周期 子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细 ...
-
Android关于Activity生命周期详解
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...
-
[转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
转自:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在前 ...
随机推荐
-
H3C dhcp 中继
需求描述RT1作为DHCP服务器创建两个全局地址池:192.168.10.0/24 192.168.20.0/24 RT1和RT3属于VLAN 10 RT2属于VLAN 20 在交换机上配置DHCP中 ...
-
CocoStudio基础教程(2)关联程序逻辑与cocoStudio导出文件
1.概述 上篇说到将CocoStudio的导出文件在程序中运行出来,但是并没有用户交互,即点击响应,程序的逻辑判断也都没有.这篇中我们把它们加进去,这样就可以算一个完整的程序了. 2.界面编辑 大部分 ...
-
js 动态 activex 组件
function writeObject(){ var obj = document.getElementById("mydelphi"); if(!obj){ var divob ...
-
INSERT IGNORE 与 INSERT INTO的区别
例 insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据: insert ignore into table(name) select name from table2 例 ...
-
CocoaPods安装和使用及问题:Setting up CocoaPods master repo-b
目录 CocoaPods是什么? 如何下载和安装CocoaPods? 如何使用CocoaPods? 场景1:利用CocoaPods,在项目中导入AFNetworking类库 场景2:如何正确编译运行一 ...
-
第八章 关于SQL查询出错的一些问题
问题一:在使用MySQL使用传参查询并返回结果集时,没错,小伙伴们都知道少不了Statement接口和PreparedStatement对象.问题来了,有时竟然查询不了,Debug进去,发现执行的SQ ...
-
各大公司Java后端开发面试题总结
ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副 ...
-
JAVA泛型使用方法总结
1. 基本概念: (1)什么是泛型? 泛型,即"参数化类型".即将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用或 ...
-
alpha-咸鱼冲刺day3
一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 今天把数据库的表给建好了,学长那边把登陆跟注册页面也做好了(纯页面,html5+css的那种) 四,问题困难 日常啥都不会,百度 ...
-
使用samba 共享Linux文件到Windows
1.使用yum命令安装了samba服务 #yum install samba 2.配置/etc/samba/smb.conf文件,在最后一行添加下面一段配置: #vi /etc/samba/smb.c ...