在Android开发过程中,我们应该为每个activity设定卡恰当的启动方式。android中,activity的启动模式主要分为四种;分别为:standard、singleTop、singleTask、singlelnstance。
修改模式可以在manifests文件夹下的AndroidManif.xml中选用launchModel属性来修改模式。
首先,我先来介绍第一种:
standard
该模式是activity默认的启动模式,在我们不指定启动模式的情况下,我们创建的activity使用的都是standard模式。这种模式的特点是,在每次启动activity是它都会在任务栈的栈顶创建一个新的实例。所以,在退出时,就会对应启动的次数依次出栈。
singleTop
该模式与standard的区别是,如果你启动的activity已经位于栈顶时,就直接使用它,不再重新创建新的实例。但是如果要启动的activity不是位于栈顶,那么还是要重新在栈顶创建新的实例。
singleTask
该模式下,在每次启动activity时,系统会自动检测栈中,是否存在该activity的实例,如果发现已经存在就直接使用该实例。并且将activity之上的所有activity出栈,如果没有发现该activity的实例,就新创建一个新的实例。
singlelnstance
该模式下只会创建一个activity实例,并且使用一个新的栈来装载该activity。打个比方,我们创建三个activity,第一个和第三有默认的standard模式,第二个使用singlelnstance模式。启动时,第一个和第三个activity在一个任务栈。第二个activity会用一个新的栈来装载它。