2011-02-10 3 views
8

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

ответ

5

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

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

+1

** FLAG_ACTIVITY_CLEAR_TASK ** не работает сама по себе. Вам необходимо установить его в сочетании с ** Intent.FLAG_ACTIVITY_NEW_TASK ** (из документации для Android). – Borzh

2

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

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

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

    startActivity(intent); 
+1

он очистит все предыдущие действия из стека – Munir