四种启动模式
1.standard
android:launchMode="standard"
默认的标准启动模式,每次启动当前Activity,任务栈中都添加一个当前Activity的实例。按返回键时,表现出退出多个当前Activity的现象。
MainActivityOne和MainActivityTwo都是standard
singleTop(栈顶复用)
android:launchMode="singleTop"
当前任务栈的栈顶已经时当前Activity的实例,则不会重复创建.
应用:通知栏;登录注册
MainActivityOne是singleTop,MainActivityTwo是standard
1.MainActivityOne启动MainActivityOne(不会重走生命周期,触发onNewIntent方法)
2.MainActivityTwo启动MainActivityOne(重走生命周期)
3.singleTask(栈内复用)
android:launchMode="singleTask"
把要启动的实例移到栈顶,移除其他上层实例。
应用:首页
MainActivityOne是singleTask,MainActivityTwo是standard
1.MainActivityOne启动MainActivityOne(跟singleTop一样,不会重走生命周期,触发onNewIntent方法)
2.MainActivityOne启动MainActivityTwo,MainActivityTwo再启动MainActivityOne
4.singleInstance(单独栈)
android:launchMode="singleInstance"
为当前Activity创建一个新的任务栈
应用:呼叫来电界面
MainActivityOne是singleInstance,MainActivityTwo是standard
1.MainActivityOne启动MainActivityOne(跟singleTop一样,不会重走生命周期,触发onNewIntent方法)
2.MainActivityOne启动MainActivityTwo,MainActivityTwo再启动MainActivityOne
点击2次返回键才能退出应用,MainActivityOne是独立栈