Android的activity有四种启动模式:
要设置一个activity的启动模式就在menifest 即清单文件中这个activity的节点下 设置
android:launchMode="启动模式"
standard
如果一个activity不设置的话这个就是默认的启动模式,一个activity在这个模式下,打开多少次这个activity就存在多少个这个activity的实例,比如进来activityA,这时候存在一个
activityA的实例,如果在activityA跳转到activityB,再从
activityB调到activityA的话,这时候按返回键会回到B,再按返回键会回到activityA;
singleTask
如果一个activity设置为这个模式的话,那么这个activity不管打开多少次,都只有一个实例,比如常见的是登录activity,如果一个登录界面有一个注册按钮,点击注册按钮跳到注册页面,如果注册页面有“已有账号直接登录”跳到登录页面的话,跳到登录页面的时候再按返回键就再回到注册页面,再按返回键又回到登录页面。
所以把这个登录的activity的启动模式设置为singleTask的话,上面的例子不管打开多少次登录页面,都只有一个登录activity的实例。
singleTop
简单的说这个模式就是当一个activity处于栈顶的时候不会连续的创建两个相同的activity,比如UC浏览器的主页面,无论你打开多少次这个主页面,只要回到这个主页面的时候,都只有一个实例,这样的话你再按系统的返回键就会退出程序
singleInstance
一个activity设置这个模式的话,如果打开这个activity的话就会创建新的任务栈,这个任务栈只有这个activity实例(不清楚任务栈的去百度百度吧~~~)