Activity一个有4种启动模式,分别是:standard、singleTop、singleTask、singleInstance。
这4种启动模式可以在AndroidManifest.xml文件中的<activity>标签下的android:launchMode 属性进行设置。
Activity栈是一个后进先出的列表,用于保存要启动的Activity实例。
1.standard
standard是Activity默认的启动模式,每次启动Activity时,都会创建一个新的Activity实例,并加入到栈顶。
2.singleTop
如果要启动的Activity实例没有在栈顶,则会创建新的Activity实例并加入到栈顶,如果要创建的Activity已经在栈顶了,则不会重新创建新的实例,会使用当前栈顶相同的实例并会触发onNewIntent方法。
3.singleTask
使用singleTask启动模式时,分为两种情况:
(1)启动的Activity实例不存在:创建新的Activity实例并加入栈顶。
(2)启动的Activity实例已存在栈中:不创建新的Activity实例,只需要把该Activity之上的其他Activity弹出(pop),保持该Activity处于栈顶。
4.singleInstance
只允许一个实例存在,每次调用时都会使用同一个实例引用。