android的启动模式



Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

activity启动时 activity的存放 就像是在一个栈中(理解为类栈 比较方便) 但又有不同的方式​.

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

standard启动模式:​ 也是在不配置的时候的默认启动模式 每打开一个Activity无论其存不存在都会创建一个新的实例(新的activity) 

singleTop启动模式:​ 可以直接理解为栈顶不重建启动模式 意为 当这个activity在最上面的时候 再次打开当前activity不会创建新的activity实例,但当其不在栈顶时 是会创建一个新的activity实例

singleTask启动模式: 当前activity在栈顶时 与 singleTop一样 如果再打开当前的activity不会创建新的实例,当其不在栈顶时 它不会创建新的activity实例,而是会将在它上面存在的activity全部弹出(销毁),然后将其本身放在栈顶

singleInstance启动模式:​当activity启动后,如果没有被创建过,则会创建当前activity进入一个栈且当前栈中无法存放其他activity实例;当activity存在且不在当前界面显示时被再次启动,是通过onNewIntent()方法来启动调用的 


偷一波水例子加图片 后续如果自己有机会打好的再更新​


Standard 默认

A->B->C->D->B

08-25 21:45:01.427: I/--Main--(3020): ---ActivityA-----onCreate-----创建-----

08-25 21:45:01.429: D/--Main--(3020): ---ActivityA-----onResume-----恢复-----

08-25 21:45:04.871: I/--Main--(3020): ---ActivityB-----onCreate-----创建-----

08-25 21:45:04.872: D/--Main--(3020): ---ActivityB-----onResume-----恢复-----

08-25 21:45:05.721: W/--Main--(3020): ---ActivityA-----onStop-----停止-----

08-25 21:45:06.142: I/--Main--(3020): ---ActivityC-----onCreate-----创建-----

08-25 21:45:06.145: D/--Main--(3020): ---ActivityC-----onResume-----恢复-----

08-25 21:45:07.010: W/--Main--(3020): ---ActivityB-----onStop-----停止-----

08-25 21:45:07.630: I/--Main--(3020): ---ActivityD-----onCreate-----创建-----

08-25 21:45:07.632: D/--Main--(3020): ---ActivityD-----onResume-----恢复-----

08-25 21:45:08.484: W/--Main--(3020): ---ActivityC-----onStop-----停止-----

08-25 21:45:09.345: I/--Main--(3020): ---ActivityB-----onCreate-----创建-----

08-25 21:45:09.347: D/--Main--(3020): ---ActivityB-----onResume-----恢复-----

08-25 21:45:10.215: W/--Main--(3020): ---ActivityD-----onStop-----停止-----

填写图片摘要(选填)

SingleTask模式

A->B->C->D->B

08-25 21:20:53.693: I/--Main--(2491): ---ActivityA-----onCreate-----创建-----

08-25 21:20:53.694: D/--Main--(2491): ---ActivityA-----onResume-----恢复-----

08-25 21:20:57.006: I/--Main--(2491): ---ActivityB-----onCreate-----创建-----

08-25 21:20:57.008: D/--Main--(2491): ---ActivityB-----onResume-----恢复-----

08-25 21:20:57.736: W/--Main--(2491): ---ActivityA-----onStop-----停止-----

08-25 21:20:57.998: I/--Main--(2491): ---ActivityC-----onCreate-----创建-----

08-25 21:20:57.998: D/--Main--(2491): ---ActivityC-----onResume-----恢复-----

08-25 21:20:58.919: W/--Main--(2491): ---ActivityB-----onStop-----停止-----

08-25 21:20:59.769: I/--Main--(2491): ---ActivityD-----onCreate-----创建-----

08-25 21:20:59.770: D/--Main--(2491): ---ActivityD-----onResume-----恢复-----

08-25 21:21:00.674: W/--Main--(2491): ---ActivityC-----onStop-----停止-----

08-25 21:21:05.976: E/--Main--(2491): ---ActivityC-----onDestroy-----销毁-----

08-25 21:21:06.062: I/--Main--(2491): ---ActivityB-----onNewIntent----------

08-25 21:21:06.064: D/--Main--(2491): ---ActivityB-----onResume-----恢复-----

08-25 21:21:06.773: W/--Main--(2491): ---ActivityD-----onStop-----停止-----

08-25 21:21:06.773: E/--Main--(2491): ---ActivityD-----onDestroy-----销毁-----

填写图片摘要(选填)

SingleTop

A->B->B->B

08-25 21:46:32.159: I/--Main--(3183): ---ActivityA-----onCreate-----创建-----

08-25 21:46:32.161: D/--Main--(3183): ---ActivityA-----onResume-----恢复-----

08-25 21:46:34.630: I/--Main--(3183): ---ActivityB-----onCreate-----创建-----

08-25 21:46:34.632: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

08-25 21:46:35.400: W/--Main--(3183): ---ActivityA-----onStop-----停止-----

08-25 21:46:35.786: I/--Main--(3183): ---ActivityB-----onNewIntent----------

08-25 21:46:35.786: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

08-25 21:46:37.367: I/--Main--(3183): ---ActivityB-----onNewIntent----------

08-25 21:46:37.367: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

SingleInstance

A->B->C->D->B->C->D

08-25 21:50:50.946: I/--Main--(3398): ---ActivityA-----onCreate-----创建-----

08-25 21:50:50.958: D/--Main--(3398): ---ActivityA-----onResume-----恢复-----

08-25 21:50:55.984: I/--Main--(3398): ---ActivityB-----onCreate-----创建-----

08-25 21:50:55.985: D/--Main--(3398): ---ActivityB-----onResume-----恢复-----

08-25 21:50:56.963: W/--Main--(3398): ---ActivityA-----onStop-----停止-----

08-25 21:50:57.853: I/--Main--(3398): ---ActivityC-----onCreate-----创建-----

08-25 21:50:57.865: D/--Main--(3398): ---ActivityC-----onResume-----恢复-----

08-25 21:50:58.772: W/--Main--(3398): ---ActivityB-----onStop-----停止-----

08-25 21:50:59.657: I/--Main--(3398): ---ActivityD-----onCreate-----创建-----

08-25 21:50:59.657: D/--Main--(3398): ---ActivityD-----onResume-----恢复-----

08-25 21:51:00.600: W/--Main--(3398): ---ActivityC-----onStop-----停止-----

08-25 21:51:01.313: I/--Main--(3398): ---ActivityB-----onNewIntent----------

08-25 21:51:01.314: D/--Main--(3398): ---ActivityB-----onResume-----恢复-----

08-25 21:51:02.342: W/--Main--(3398): ---ActivityD-----onStop-----停止-----

08-25 21:51:02.997: I/--Main--(3398): ---ActivityC-----onNewIntent----------

08-25 21:51:02.997: D/--Main--(3398): ---ActivityC-----onResume-----恢复-----

08-25 21:51:04.155: W/--Main--(3398): ---ActivityB-----onStop-----停止-----

08-25 21:51:04.830: I/--Main--(3398): ---ActivityD-----onNewIntent----------

08-25 21:51:04.830: D/--Main--(3398): ---ActivityD-----onResume-----恢复-----

08-25 21:51:05.906: W/--Main--(3398): ---ActivityC-----onStop-----停止-----

填写图片摘要(选填)

 

Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

activity启动时 activity的存放 就像是在一个栈中(理解为类栈 比较方便) 但又有不同的方式​.

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

standard启动模式:​ 也是在不配置的时候的默认启动模式 每打开一个Activity无论其存不存在都会创建一个新的实例(新的activity) 

singleTop启动模式:​ 可以直接理解为栈顶不重建启动模式 意为 当这个activity在最上面的时候 再次打开当前activity不会创建新的activity实例,但当其不在栈顶时 是会创建一个新的activity实例

singleTask启动模式: 当前activity在栈顶时 与 singleTop一样 如果再打开当前的activity不会创建新的实例,当其不在栈顶时 它不会创建新的activity实例,而是会将在它上面存在的activity全部弹出(销毁),然后将其本身放在栈顶

singleInstance启动模式:​当activity启动后,如果没有被创建过,则会创建当前activity进入一个栈且当前栈中无法存放其他activity实例;当activity存在且不在当前界面显示时被再次启动,是通过onNewIntent()方法来启动调用的 


偷一波水例子加图片 后续如果自己有机会打好的再更新​


Standard 默认

A->B->C->D->B

08-25 21:45:01.427: I/--Main--(3020): ---ActivityA-----onCreate-----创建-----

08-25 21:45:01.429: D/--Main--(3020): ---ActivityA-----onResume-----恢复-----

08-25 21:45:04.871: I/--Main--(3020): ---ActivityB-----onCreate-----创建-----

08-25 21:45:04.872: D/--Main--(3020): ---ActivityB-----onResume-----恢复-----

08-25 21:45:05.721: W/--Main--(3020): ---ActivityA-----onStop-----停止-----

08-25 21:45:06.142: I/--Main--(3020): ---ActivityC-----onCreate-----创建-----

08-25 21:45:06.145: D/--Main--(3020): ---ActivityC-----onResume-----恢复-----

08-25 21:45:07.010: W/--Main--(3020): ---ActivityB-----onStop-----停止-----

08-25 21:45:07.630: I/--Main--(3020): ---ActivityD-----onCreate-----创建-----

08-25 21:45:07.632: D/--Main--(3020): ---ActivityD-----onResume-----恢复-----

08-25 21:45:08.484: W/--Main--(3020): ---ActivityC-----onStop-----停止-----

08-25 21:45:09.345: I/--Main--(3020): ---ActivityB-----onCreate-----创建-----

08-25 21:45:09.347: D/--Main--(3020): ---ActivityB-----onResume-----恢复-----

08-25 21:45:10.215: W/--Main--(3020): ---ActivityD-----onStop-----停止-----

填写图片摘要(选填)

SingleTask模式

A->B->C->D->B

08-25 21:20:53.693: I/--Main--(2491): ---ActivityA-----onCreate-----创建-----

08-25 21:20:53.694: D/--Main--(2491): ---ActivityA-----onResume-----恢复-----

08-25 21:20:57.006: I/--Main--(2491): ---ActivityB-----onCreate-----创建-----

08-25 21:20:57.008: D/--Main--(2491): ---ActivityB-----onResume-----恢复-----

08-25 21:20:57.736: W/--Main--(2491): ---ActivityA-----onStop-----停止-----

08-25 21:20:57.998: I/--Main--(2491): ---ActivityC-----onCreate-----创建-----

08-25 21:20:57.998: D/--Main--(2491): ---ActivityC-----onResume-----恢复-----

08-25 21:20:58.919: W/--Main--(2491): ---ActivityB-----onStop-----停止-----

08-25 21:20:59.769: I/--Main--(2491): ---ActivityD-----onCreate-----创建-----

08-25 21:20:59.770: D/--Main--(2491): ---ActivityD-----onResume-----恢复-----

08-25 21:21:00.674: W/--Main--(2491): ---ActivityC-----onStop-----停止-----

08-25 21:21:05.976: E/--Main--(2491): ---ActivityC-----onDestroy-----销毁-----

08-25 21:21:06.062: I/--Main--(2491): ---ActivityB-----onNewIntent----------

08-25 21:21:06.064: D/--Main--(2491): ---ActivityB-----onResume-----恢复-----

08-25 21:21:06.773: W/--Main--(2491): ---ActivityD-----onStop-----停止-----

08-25 21:21:06.773: E/--Main--(2491): ---ActivityD-----onDestroy-----销毁-----

填写图片摘要(选填)

SingleTop

A->B->B->B

08-25 21:46:32.159: I/--Main--(3183): ---ActivityA-----onCreate-----创建-----

08-25 21:46:32.161: D/--Main--(3183): ---ActivityA-----onResume-----恢复-----

08-25 21:46:34.630: I/--Main--(3183): ---ActivityB-----onCreate-----创建-----

08-25 21:46:34.632: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

08-25 21:46:35.400: W/--Main--(3183): ---ActivityA-----onStop-----停止-----

08-25 21:46:35.786: I/--Main--(3183): ---ActivityB-----onNewIntent----------

08-25 21:46:35.786: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

08-25 21:46:37.367: I/--Main--(3183): ---ActivityB-----onNewIntent----------

08-25 21:46:37.367: D/--Main--(3183): ---ActivityB-----onResume-----恢复-----

SingleInstance

A->B->C->D->B->C->D

08-25 21:50:50.946: I/--Main--(3398): ---ActivityA-----onCreate-----创建-----

08-25 21:50:50.958: D/--Main--(3398): ---ActivityA-----onResume-----恢复-----

08-25 21:50:55.984: I/--Main--(3398): ---ActivityB-----onCreate-----创建-----

08-25 21:50:55.985: D/--Main--(3398): ---ActivityB-----onResume-----恢复-----

08-25 21:50:56.963: W/--Main--(3398): ---ActivityA-----onStop-----停止-----

08-25 21:50:57.853: I/--Main--(3398): ---ActivityC-----onCreate-----创建-----

08-25 21:50:57.865: D/--Main--(3398): ---ActivityC-----onResume-----恢复-----

08-25 21:50:58.772: W/--Main--(3398): ---ActivityB-----onStop-----停止-----

08-25 21:50:59.657: I/--Main--(3398): ---ActivityD-----onCreate-----创建-----

08-25 21:50:59.657: D/--Main--(3398): ---ActivityD-----onResume-----恢复-----

08-25 21:51:00.600: W/--Main--(3398): ---ActivityC-----onStop-----停止-----

08-25 21:51:01.313: I/--Main--(3398): ---ActivityB-----onNewIntent----------

08-25 21:51:01.314: D/--Main--(3398): ---ActivityB-----onResume-----恢复-----

08-25 21:51:02.342: W/--Main--(3398): ---ActivityD-----onStop-----停止-----

08-25 21:51:02.997: I/--Main--(3398): ---ActivityC-----onNewIntent----------

08-25 21:51:02.997: D/--Main--(3398): ---ActivityC-----onResume-----恢复-----

08-25 21:51:04.155: W/--Main--(3398): ---ActivityB-----onStop-----停止-----

08-25 21:51:04.830: I/--Main--(3398): ---ActivityD-----onNewIntent----------

08-25 21:51:04.830: D/--Main--(3398): ---ActivityD-----onResume-----恢复-----

08-25 21:51:05.906: W/--Main--(3398): ---ActivityC-----onStop-----停止-----

填写图片摘要(选填)

 

Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

Activity 四种启动模式: standard,singleTop,singleTask,singleInstance​

配置启动activity模式

在androidmanifest里 配置activity 的 android:launchMode​ 属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值