Intent之几种FLAG的用法

来源:互联网 发布:PHP list 注意点 编辑:程序博客网 时间:2024/05/22 05:23

<h3>Intent之几种FLAG的用法</h3>


假设运行了4个Activity,运行先后顺序A、B、C、D(即栈底到栈顶的排放顺序)

1、Intent.FLAG_ACTIVITY_CLEAR_TASK 

清空栈中所有任务,即ABCD

2、Intent.FLAG_ACTIVITY_NEW_TASK

开启一个新任务

3、Intent.FLAG_ACTIVITY_CLEAR_TOP

清空某个Activity在栈中位置到栈顶的所有任务

4、Intent.FLAG_ACTIVITY_SINGLE_TOP

单一栈顶,意思就是不重新创建目前存在栈顶的Activity

5、Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

将栈中的某个Activity提到栈顶


搭配使用

1、清除栈中所有任务,创建一个新任务

A、B、C、D都会从栈中清空,然后重启启动Activity A

Intent intent = new Intent(B.this,A.class);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);


2、清空某个需要的Activity在栈中位置之上的所有Activity

Intent intent = new Intent(A.this,B.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);

B、C、D会被清空,然后重新创建B


3、上述2中,若不希望重新创建B

可在startActivity(intent);之前加上如下语句

intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

0 0