方法一:
Intent intent = new Intent(A.this,B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
一定要和FLAG_ACTIVITY_NEW_TASK一起使用!
方法二:
Intent intent = new Intent(context,PLoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(intent);
注意這里使用的是addFlags(); 二者的區別是setFlags();會清空原有的Flags設置新的Flags,而addFlags則是添加新的Flags
方法三:
/** *@content:活動結束管理類 *@time:2019-1-29 *@build: */ public class ActivityFinishUtil { private static List<Activity> activityList = new ArrayList<>(); public static void addActivity(Activity activity){ activityList.add(activity); } public static void removeActivity(Activity activity){ activityList.remove(activity); } public static void finishOtherAllActivity(Activity activity){ for (Activity item : activityList){ if (item == activity){ continue; } item.finish(); } } public static void finishAllActivity(){ for (Activity item : activityList){ item.finish(); } } }
此方法只需要在你的基礎Activity的onCreate和onDestroy添加對應方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayout()); ActivityFinishUtil.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityFinishUtil.removeActivity(this); }
