[Android] Activity 重复使用

  • 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.

原文地址:https://www.cnblogs.com/yaya-Android/p/4099486.html