FLAG_ACTIVITY_SINGLE_TOP 栈顶复用,不在栈顶则新建(可能出现多实例,如 A-->B-->A)
FLAG_ACTIVITY_NEW_TASK 与启动模式中singleTask作用基本相同,具体请看我的另一篇博文: Android Activity的四大启动模式
FLAG_ACTIVITY_CLEAR_TOP 若Activity的启动模式为非standard或在使用该flag时还使用了FLAG_ACTIVITY_SINGLE_TOP标识,类似如下代码:
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
则该Activity在栈顶则复用,不在栈顶则将其之上的Activity出栈,若Activity压根儿没有,则新建并入栈;若为standard启动模式,且只设置了该标志位:
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
则是将原来的Activity销毁了再重建:在栈顶-->销毁重建,不在栈顶-->将之上的Activity出栈,也销毁重建。