首先介绍activity的4种模式名称:standard、singleTop、singleTask、singleInstance。
设置Activity的启动模式,只需要在AndroidManifest.xml里对应的<activity>标签设置android:launchMode属性,例如:
<activity
android:name=".A1"
android:launchMode="standard" />
下面介绍这4种启动模式的区别:
standard,如果不指定activity的启动方式的话,就默认是standard。这种启动方式就是,直接在当前的栈内创建一个新的activity实例。(栈,即堆栈,指先进后出)。
singleTop,这种启动模式,在启动activity的时候会检查当前的栈顶是不是要启动的activity,如果是,则不会创建新的实例。如果当前activity不在栈顶,那么就会在当前栈中创建一个新的activity实例。
singleTask,这种启动模式,比如, 启动了activityA的实例,然后又在当前栈中启动了activityB,此时如果在当前栈中启动了activityA,那么不会创建新的实例,并且会返回到栈中当前activityA 的实例中,在栈中activityA以上的实例,都会被杀死。
singleInstance,这种启动模式,会创建一个新的activity实例,但是会放在另外一个栈中。