Activity 生命周期及 launcherMode 回顾

Extra:

a、onSaveInstanceState:

  1. 此方法在 activity 不可见时做一些保存操作;但只是在可能会重新显示的时候才会被调用,如:旋转屏,或页面跳转,但是在 页面销毁时不会被调用;
  2. 在 onStop 之后被调用。

b、onRestoreInstanceState:

  1. 此方法和 onSaveInstanceState 是成对的操作(但不一定同时被调用);只是在被 重新初始化的时候才会被调用;
  2. 在 onStart 之后被调用。

c、standard模式下,在 activity 见进行页面跳转时,先执行当前(正在显示)的 onPause 方法,然后走 新 Activity 的创建方法,在创建结束并显示之后,才开始执行上一个的 onPause 和 onSaveInstanceState 方法。

一、启动模式:standard,不添加额外属性

1、只有一个 activity:

1.1、打开 -->> 关闭:

com.***.matanalyze D/activity__A__217895308: onCreate: 
com.***.matanalyze D/activity__A__217895308: onStart: 
com.***.matanalyze D/activity__A__217895308: onResume: 
(-- 返回关闭操作 --)
com.***.matanalyze D/activity__A__217895308: onPause: 
com.***.matanalyze D/activity__A__217895308: onStop: 
com.***.matanalyze D/activity__A__217895308: onDestroy: 

1.2、打开 -->> 进入到后台 -->> 回到前台:

com.***.matanalyze D/activity__A__217895308: onCreate: 
com.***.matanalyze D/activity__A__217895308: onStart: 
com.***.matanalyze D/activity__A__217895308: onResume: 
(-- 开始进入后台操作 --)
com.***.matanalyze D/activity__A__217895308: onPause: 
com.***.matanalyze D/activity__A__217895308: onStop: 
com.***.matanalyze D/activity__A__217895308: onSaveInstanceState: 
(-- 返回前台操作 --)
com.***.matanalyze D/activity__A__217895308: onRestart: 
com.***.matanalyze D/activity__A__217895308: onStart: 
com.***.matanalyze D/activity__A__217895308: onResume: 

1.3、打开 —>> 旋转屏幕

com.***.matanalyze D/activity__A__217895308: onCreate: 
com.***.matanalyze D/activity__A__217895308: onStart: 
com.***.matanalyze D/activity__A__217895308: onResume: 
(-- start 旋转屏幕操作 --)
com.***.matanalyze D/activity__A__217895308: onPause: 
com.***.matanalyze D/activity__A__217895308: onStop: 
com.***.matanalyze D/activity__A__217895308: onSaveInstanceState: 
com.***.matanalyze D/activity__A__217895308: onDestroy: 
com.***.matanalyze D/activity__A__159201920: onCreate: 
com.***.matanalyze D/activity__A__159201920: onStart: 
com.***.matanalyze D/activity__A__159201920: onRestoreInstanceState: 
com.***.matanalyze D/activity__A__159201920: onResume: 
(-- 返回-退出操作 --)
com.***.matanalyze D/activity__A__159201920: onPause: 
com.***.matanalyze D/activity__A__159201920: onStop: 
com.***.matanalyze D/activity__A__159201920: onDestroy: 

2、两个 standard 跳转:
2.1、A -->> B -->> 返回到 A -->> 返回退出 A

com.***.matanalyze D/activity__A__134269277: onCreate: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
(-- 点击跳转到 B 操作 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze E/activity__B__7043704: onCreate: 
com.***.matanalyze E/activity__B__7043704: onStart: 
com.***.matanalyze E/activity__B__7043704: onResume: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onSaveInstanceState: 
(-- 从 B 返回到 A 操作 --)
com.***.matanalyze E/activity__B__7043704: onPause: 
com.***.matanalyze D/activity__A__134269277: onRestart: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
com.***.matanalyze E/activity__B__7043704: onStop: 
com.***.matanalyze E/activity__B__7043704: onDestroy: 
(-- 从 A 返回,并退出操作 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onDestroy: 

二、启动模式:singleTop

2.1、A 打开 新的A

onCreate --> onStart --> onResume -
	-->> 跳转 -->> onPause -->  onResume 
	-->> 返回退出 -->> onPause --> onStop --> onDestroy

2.2、A 打开 B,再返回到 A,再返回退出
(Note: B的启动模式为 standart 和 SingleTop 时,都为如下过程-此处仅指当前的3步操作)

com.***.matanalyze D/activity__A__131364660: onCreate: 
com.***.matanalyze D/activity__A__131364660: onStart: 
com.***.matanalyze D/activity__A__131364660: onResume: 
(-- 点击跳转到 B --)
com.***.matanalyze D/activity__A__131364660: onPause: 
com.***.matanalyze E/activity__B__7043704: onCreate: 
com.***.matanalyze E/activity__B__7043704: onStart: 
com.***.matanalyze E/activity__B__7043704: onResume: 
com.***.matanalyze D/activity__A__131364660: onStop: 
com.***.matanalyze D/activity__A__131364660: onSaveInstanceState: 
(-- 按返回键 返回到 A --)
com.***.matanalyze E/activity__B__7043704: onPause: 
com.***.matanalyze D/activity__A__131364660: onRestart: 
com.***.matanalyze D/activity__A__131364660: onStart: 
com.***.matanalyze D/activity__A__131364660: onResume: 
com.***.matanalyze E/activity__B__7043704: onStop: 
com.***.matanalyze E/activity__B__7043704: onDestroy: 
(-- 再按返回键 退出--)
com.***.matanalyze D/activity__A__131364660: onPause: 
com.***.matanalyze D/activity__A__131364660: onStop: 
com.***.matanalyze D/activity__A__131364660: onDestroy: 

三、启动模式:singleTask

3.1、A 打开 新 A

com.***.matanalyze D/activity__A__131364660: onCreate: 
com.***.matanalyze D/activity__A__131364660: onStart: 
com.***.matanalyze D/activity__A__131364660: onResume: 
(-- 创建新 A 并跳转 操作 --)
com.***.matanalyze D/activity__A__131364660: onPause: 
com.***.matanalyze D/activity__A__131364660: onResume: 

3.2、A 打开 B,再打开 新的A,再返回(此时会退出)
(Note: B的启动模式为 standart 和 singleTask 时,都为如下过程-此处仅指当前的3步操作)

com.***.matanalyze D/activity__A__134269277: onCreate: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
(-- 打开新的 B 操作 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze E/activity__B__7043704: onCreate: 
com.***.matanalyze E/activity__B__7043704: onStart: 
com.***.matanalyze E/activity__B__7043704: onResume: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onSaveInstanceState: 
(-- 再打开新的 A 操作 --)
com.***.matanalyze E/activity__B__7043704: onPause: 
com.***.matanalyze D/activity__A__134269277: onRestart: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
com.***.matanalyze E/activity__B__7043704: onStop: 
com.***.matanalyze E/activity__B__7043704: onDestroy: 
(-- 按返回键 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onDestroy: 
(-- 此时完全退出 --)

四、启动模式:singleInstance

4.1、A 打开 新的 A

com.***.matanalyze D/activity__A__131364660: onCreate: 
com.***.matanalyze D/activity__A__131364660: onStart: 
com.***.matanalyze D/activity__A__131364660: onResume: 
(-- 打开新的 A 操作 --)
com.***.matanalyze D/activity__A__131364660: onPause: 
com.***.matanalyze D/activity__A__131364660: onResume: 
(-- 在新页面 按返回键 操作 --)
com.***.matanalyze D/activity__A__131364660: onPause: 
com.***.matanalyze D/activity__A__131364660: onStop: 
com.***.matanalyze D/activity__A__131364660: onDestroy: 

4.2、A 打开 B,再打开新的 A,再打开新的B,再返回退出
note:此时 B 为 standard

com.***.matanalyze D/activity__A__134269277: onCreate: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
(-- 打开新的 B 操作 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze E/activity__B__7043704: onCreate: 
com.***.matanalyze E/activity__B__7043704: onStart: 
com.***.matanalyze E/activity__B__7043704: onResume: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onSaveInstanceState: 
(-- 再打开新的 A 操作 --)
com.***.matanalyze E/activity__B__7043704: onPause: 
com.***.matanalyze D/activity__A__134269277: onRestart: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
com.***.matanalyze E/activity__B__7043704: onStop: 
2043704: onSaveInstanceState: 
(-- 打开新的 B 操作 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze E/activity__B__7043704: onRestart: 
com.***.matanalyze E/activity__B__7043704: onStart: 
com.***.matanalyze E/activity__B__7043704: onResume: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onSaveInstanceState: 
(-- 再打开新的 A 操作 --)
com.***.matanalyze E/activity__B__7043704: onPause: 
com.***.matanalyze D/activity__A__134269277: onRestart: 
com.***.matanalyze D/activity__A__134269277: onStart: 
com.***.matanalyze D/activity__A__134269277: onResume: 
com.***.matanalyze E/activity__B__7043704: onStop: 
com.***.matanalyze E/activity__B__7043704: onDestroy: 
(-- 按返回键 --)
com.***.matanalyze D/activity__A__134269277: onPause: 
com.***.matanalyze D/activity__A__134269277: onStop: 
com.***.matanalyze D/activity__A__134269277: onDestroy: 
(-- 此时完全退出 --)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值