完成所有活动但保留第一个

Finish all activities but keep the first

该应用有以下流程:

1) 主页 -> Activity A -> Activity B -> Activity C -> Activity A -> Activity B -> Activity C -> 等等

2) 主页 -> Activity C -> Activity B -> Activity C -> Activity A -> Activity B -> Activity C -> 等等

3) 主页 -> Activity D -> Activity B -> Activity C -> Activity A -> Activity B -> Activity C -> 等等

Activity B 有一个按钮,必须关闭除主页和第一个 Activity 之外的所有活动。最好的方法是什么?

如果我给 A、B 和 C 相同的 taskAffinity 并使用 finishAffinity(),那么所有活动都将关闭。

试试这个,也就是说,如果你想关闭除 MainActivity 之外的所有 Activity 并从此打开其他 Activity。

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |  Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

只需在开始简单后使用 finishAffinity() activity

Activity.finishAffinity() vs Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK