В вашей основной деятельности Создайте ArrayList типа Activity.
public static ArrayList<Activity> activityArrayList = new ArrayList<>();
при изменении вида деятельности просто добавьте строку в следующий вид деятельности
BaseActivity.activityArrayList.add(this);
эти действия добавляются в ваш arrayList, теперь вы можете легко добавлять или удалять любые действия по вашему выбору из списка массивов, например, у меня есть несколько функций в Base Activity, удаляющих все действия или удаляющих все, кроме основной
public static void finishAllExceptMain() {
try {
//Constants.logMessage(Constants.TAG, "outer Start Size: " + activityArrayList.size());
int count = activityArrayList.size();
while (count > 1) {
count--;
activityArrayList.get(count).finish();
activityArrayList.remove(count);
}
} catch (Exception e) {
}
}
public static void finishLastActivity() {
int lastActivity = activityArrayList.size() - 1;
activityArrayList.get(lastActivity).finish();
activityArrayList.remove(activityArrayList.get(lastActivity));
}