在Android系统中我们创建的Acitivity是以栈的形式呈现的,每个应用都有独立的任务栈Task.一个栈中可以有多个Activity.
2.singleTop:启动Activity时,指定Activity不在栈顶就创建,如在栈顶,则不再创建。注:不会出现两个相同的Activity相邻
3.singleTask:如果启动的Activity不存在就创建Activity,如果存在直接跳转到指定的Activity所在位置。注:在其上面的Activity会被移出栈,也就是一个栈中不能有重复的Activity
启动另一个应用的Activity,会把那个应用的栈也移到前面,(栈里面可能还有这个应用的其它的Activity)。
下面为四种activity的启动模式:
1.standard:每次调用startActivity()启动时都会创建一个新的Activity放在栈顶。注:默认都是这个模式2.singleTop:启动Activity时,指定Activity不在栈顶就创建,如在栈顶,则不再创建。注:不会出现两个相同的Activity相邻
3.singleTask:如果启动的Activity不存在就创建Activity,如果存在直接跳转到指定的Activity所在位置。注:在其上面的Activity会被移出栈,也就是一个栈中不能有重复的Activity
4.singleInstance:如果启动的Activity不存在就创建一个Activity同时创建一个栈,如果存在就将指定的Activity存在的栈移动到栈顶。注:表示这个Activity只能存在于一个独立的任务栈中,同应用的其它Activity与其无关。
在manifest文件中注册activity时设置启动模式, 即android:launchMode="";
<activity
android:name="com.pft168.driver.activity.HomePageActivity"
android:screenOrientation="portrait"
android:launchMode="singleInstance" />
当应用中需要多次进行activity之间的跳转时,这只该属性是很有必要的。