一,singleInstance
1.被启动的activity会放在一个新开的Task中,并且activity唯一存在。
2.在原来的Task中不会存在这个被启动的activity,发生复用时会调用回调方法onNewIntent。
二,singleTask
1.被启动的activity在原来的Task中唯一存在
2.清除被启动activity顶部所有的activity,发生复用时会调用回调方法onNewIntent
三,singleTop
在栈顶时才复用被启动的activity,发生复用时会调用回调方法onNewIntent
一.FLAG_ACTIVITY_NO_HISTORY
意思就是说用这个FLAG启动的Activity,一旦退出,它不会存在于栈中,比方说!原来是A,B,C这个时候再C中以这个FLAG启动D的,D再启动E,这个时候栈中情况为A,B,C,E。
二.FLAG_ACTIVITY_NEW_TASK
首先会查找是否存在和被启动的Activity具有相同的亲和性的任务栈(即taskAffinity,注意同一个应用程序中的activity的亲和性一样,所以下面的a情况会在同一个栈中,前面这句话有点拗口,请多读几遍),如果有,刚直接把这个栈整体移动到前台,并保持栈中的状态不变,即栈中的activity顺序不变,如果没有,则新建一个栈来存放被启动的activity