android:launchMode
1.不同模式
standard:标准模式
每次启动都会创建一个新的实例
singleTop:栈顶复用模式
如果想启用的与栈顶相同就复用
singleTask:栈内复用模式
如果想启用的与栈内有相同的就复用,且该Activity上面的Activity会被清除(如下图若复用1,则2、3也会被清除)
singleInstance:全局单例模式
一个Activity占用一个栈,如果想启用的与全局有相同的就复用
2. 栈:先进后出、后进先出
Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键就会从栈顶移除一个Activity
3.其他
hash码可以分辨是否新建了实例;
TaskId区分任务栈;
复用的话会调用onNewIntent方法而不调用onCreate;
activity可设置taskAffinity设置任务栈,则从这个Activity启动的都会被加载到这个任务栈;