Подтвердить что ты не робот

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

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

В objective-c я бы сделал что-то вроде ниже

[navController popToRootViewControllerAnimated:YES];

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

4b9b3361

Ответ 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, чтобы убедиться, что он не добавляет еще один экземпляр себя в стек.

Ответ 2

Посмотрите http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP: вы можете начать активную деятельность в корневом режиме с помощью этого флага, и он убьет все действия над ним. Вы должны внимательно прочитать документы относительно поведения доставки намерений.