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 属性