Я портирую приложение iPhone на Android и не могу найти средства для добавления каждого действия в стек, кроме корневого.
В target-c я бы сделал что-то вроде следующего
[navController popToRootViewControllerAnimated:YES];
Кто-нибудь знает, могу ли я эффективно вызывать "finish ()" для каждого действия после некоторого действия?
Если вы хотите запустить одно действие, скажем, домашний экран, и удалить все остальные действия в стеке приложения, вы можете использовать:
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
, чтобы убедиться, что он не добавляет другой экземпляр самого себя в стек.