Завершите все действия, но оставьте первый
Приложение имеет следующие потоки:
1) Домой -> Деятельность A -> Деятельность B -> Деятельность C -> Деятельность A -> Деятельность B -> Деятельность C -> и т. Д.
2) Главная страница -> Деятельность C -> Деятельность B -> Деятельность C -> Деятельность A -> Деятельность B -> Деятельность C -> и т. Д.
3) Главная страница -> Деятельность D -> Деятельность B -> Деятельность C -> Деятельность A -> Деятельность B -> Деятельность C -> и т. Д.
У Действия B есть кнопка, которая должна закрыть все действия, кроме Дома и первого Действия. Каков наилучший способ сделать это?
Если я назначу A, B и C одно и то же taskAffinity и использую finishAffinity(), все действия будут закрыты.
2 ответа
Попробуйте это, т. Е. Если вы хотите закрыть все действия, кроме MainActivity, и открыть из него другие действия.
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
Просто используйте finishAffinity() после начала простого действия
Activity.finishAffinity() vs Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
https://stackru.com/a/33517795/5069323