Завершите все действия, но оставьте первый

Приложение имеет следующие потоки:

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
Другие вопросы по тегам