一、Actvity基础知识
Activity存在于任务栈中,俗称Task,一般情况下,每当我们新打开一个activity,都会将这个activity压入栈中,当我们按了back后,就会将这个activity弹出栈,但是特殊情况下,比如我们指定了activity的启动模式,情况可能就会变化
Activity的启动模式:
- standard
- singleTop
- singleTask
- singleInstance
这几种启动在AndroidManifest.xml中进行,例如:
<activity android:name=".ThirdActivity"
android:launchMode="singleInstance"></activity>
1、standard
android中activity默认的启动模式,每当启动一个activity,就会将当前activity压入当前栈,back时弹出activity
2、singleTop
在启动activity时,会判断这个activity是不是位于栈顶,如果位于栈顶,不会再新建这个activity的实例,如果这个activity不处于栈顶,会重新新建activity的实例,
3、singleTask
启动activity时,会判断是否这个activity在栈中有实例,如果有实例,直接弹出栈中在这个activity之上的其他activity实例,这时候 这个要打开的activity就处于栈顶了
4、singleInstance
启动activity时,会为这个activity新建一个栈,这个栈中只存在一个activity实例