Android Intent常见的FLAG

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标识,类似如下代码:

  1. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);  

则该Activity在栈顶则复用,不在栈顶则将其之上的Activity出栈,若Activity压根儿没有,则新建并入栈;若为standard启动模式,且只设置了该标志位:

  1. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   

则是将原来的Activity销毁了再重建:在栈顶-->销毁重建,不在栈顶-->将之上的Activity出栈,也销毁重建。


你可能感兴趣的:(Android)