Как завершить все действия в стеке, кроме первого в Android

Я портирую приложение iPhone на Android и не могу найти средства для добавления каждого действия в стек, кроме корневого.

В target-c я бы сделал что-то вроде следующего

[navController popToRootViewControllerAnimated:YES];

Кто-нибудь знает, могу ли я эффективно вызывать "finish ()" для каждого действия после некоторого действия?

18
задан Toran Billups 9 June 2011 в 19:38
поделиться

1 ответ

Если вы хотите запустить одно действие, скажем, домашний экран, и удалить все остальные действия в стеке приложения, вы можете использовать:

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Removes other Activities from stack
startActivity(intent);

Если вы также хотите предоставить это событие в MainActivity. (например, щелчок по логотипу в строке заголовка), вы также можете добавить флаг FLAG_ACTIVITY_SINGLE_TOP, чтобы убедиться, что он не добавляет другой экземпляр самого себя в стек.

34
ответ дан 30 November 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: