- Intent intent = new Intent(A.this, B.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT:
If set in an Intent passed to Context.startActivity()
, this flag will cause the launched activity to be brought to the front of its task's history stack if it is already running.
For example, consider a task consisting of four activities: A, B, C, D. If D calls startActivity() with an Intent that resolves to the component of activity B, then B will be brought to the front of the history stack, with this resulting order: A, C, D, B. This flag will be ignored if FLAG_ACTIVITY_CLEAR_TOP
is also specified.
当你依次打开四个Activity A, B, C, D(没有finish), 如果在D的时候想startActivity B, 那么系统会检测到B已经在task 栈里, 并且把B提到栈顶,这个过程没有新建B.