activity的启动模式分为四种:standard,singleTask,singleTop,singleInstance;这四种启动模式需要在清单文件中配置。
1、activity默认启动模式是standard.就是说即使我们不指定任何启动模式。他的启动模式就是standard。这中启动模式的特点就是每次打开一个activity就在任务栈中添加一个activity.
2、singleTop是栈顶的启动模式。比如当我们要依次打开AActivity-BActivity-BActivity这个时候指定BActivity的启动模式是singTop,所以当我们第二次打开BActivity的时候,并不会再次BActivity,就是并不会重新走BActivity的onCreate()方法,而是会调用onNewIntent()方法,即这个时候任务栈中只有一个BActvitity的实例。
3、singleTask如果指定该启动模式的时候,如果任务栈中存在改任务的实例,那么就会调用改任务的onNewIntent()方法,并且改任务会处于任务栈的栈顶,它上面的任务都会出栈,如果不存在该任务,就会在任务栈中创建该任务。
4、singleInstance单例的启动模式,在一个新的任务栈中创建该实例,并且多个应用会共享这个实例,如果想再次创建该实例的时候,就会找到这个任务栈复用该实例,调用onNewIntent()方法。
一个应用默认存在一个任务栈,我们也可以给activity指定任务栈。通过指定taskAffinity属性来创建不同的任务栈