Сделать определенную активность как корневую активность в стеке - PullRequest
9 голосов
/ 10 февраля 2011

У меня есть набор действий в моем стеке. Скажите A -> B -> C.когда я запускаю действие с именем «D», оно должно запускаться как корневое действие моего приложения, а все остальные действия (A, B, C) должны очищаться из моего стека после запуска действия D. Может ли кто-нибудь сказать мне, чтокак это сделать

Ответы [ 2 ]

7 голосов
/ 25 октября 2017

Установить корневую активность

    Intent intent = new Intent(this, DActivity.class);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

    startActivity(intent);
7 голосов
/ 10 июня 2014

Если вы изучите эту документацию http://developer.android.com/reference/android/content/Intent.html,, вы увидите различные флаги намерений и их использование.

В частности, для вашего вопроса нужно использовать FLAG_ACTIVITY_CLEAR_TASK , который очистит любую существующую задачу, которая будет связана с операцией до ее запуска, т.е. операция станет новым корнем в противном случае пустое задание, и все старые действия завершены.

...