2016-07-21 3 views
0

У меня есть некоторые действия, например, A, B, C, D Как закончить Activity D, очистить стек, чтобы избежать возврата на Activity C и вернуться к Activity B. Пожалуйста, нецелевой запуск D из C для результата и в onActivityResult в C, вызывать завершение снова =) 'причина завершения() уже используется))Android clear Activity back stack

ответ

0

Вы можете использовать флаг FLAG_ACTIVITY_CLEAR_TOP.

См. Здесь Android documentation. Он фактически использует точный пример, который вы указали:

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

В качестве примера рассмотрит задачу, состоящим из мероприятий: А, В, С, D. Если D называет startActivity() с намерением, устраняющим к компоненту активности В, то С и D будут законченными и B получить данную Intent, в результате чего в стеке сейчас: A, B.

0

Im не уверен, если необходимо, что поведение на постоянных баз или это условно. В первом случае вы можете добавить в своей D манифеста декларации активности следующей строке:

android:parentActivityName="com.example.B" 

Во втором случае вы можете изменить в деятельности D - onBackPressed() метода и начать Activity B здесь зависит от текущей ситуации.

Смежные вопросы