Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键,就会从栈顶移除一个Activity。
启动模式在mainfest文件中的Activity的android:launchMode属性里设置
android:taskAffinity 给任务栈设置名称,不设置的话默认为所在的包名
standard:标准模式,默认
不管这个Activity之前有没有启动/创建过,只要启动,就创建一个新的。hashcode值改变。singleTop:Task栈顶复用模式
要启动的Activity在目标栈的栈顶,不会创建新的Activity,会复用这个栈顶的Activity;
并且其onNewIntent()方法会被调用;
如果不在栈顶,那么重新创建一个新的实例。
singleTask:Task栈内复用模式
在同一个任务栈中,要启动的目标Activity已经在栈中,则会复用该Activity,并调用其onNewIntent()方法,并且该Activity上面的Activity会被清除;如果栈中没有,则创建新的实例。singleInstance: 全局单例模式
不管在哪个栈里面,在所有栈里面,只要有这个Activity就可以复用
没有给栈起名字时,默认的栈名为Activity所在的包名,