文章目录
launchMode的4种属性
通过设置AndroidManifest里的activity的android:launchMode属性设置activity的启动模式
<activity android:name=".DialogActivity"
android:launchMode=""/>
有四种属性值可供设置:
- standard:表示每启动一个activity,便为他创建一个实例,不管之前有没有启动过
- singleTop:栈顶复用模式,当启动一个activity的时候,首先检查当前栈的栈顶,如果栈顶为要启动的activity,便启动栈顶的activity,不再重新创建,并且启动onNewIntent方法;如果栈顶不为要启动的activity或者栈里没有要启动的activity,便创建一个activity,放入栈中。
- singleTask:当启动一个activity时,检测当前栈中是否有要启动的activity实例,如果有,则销毁该activity上面的所有activity,启动该activity。
- singleInstance:每个activity放在一个栈中,只要有activity实例存在,当启动activity时,直接启动已经存在的activity,这个不太常用。
栈名默认为包名,但是可以通过设置AndroidManifest里activity的android:taskAffinity属性设置栈名,如果启动activity的时候另一个栈里有要启动activity的实例,在singleTop和singleTask模式下仍会创建新的activity。
<activity android:name=".DialogActivity"
android:taskAffinity=""/>