У меня есть набор действий в моем стеке Say A -> B -> C. когда я запускаю , действие с именем «D» должно быть запущено в качестве корневой активности моего приложения , а все остальные действия (A, B, C) должны быть очищены из моего стека после запуска Activity D.Can скажите мне, как для этогоСделать определенную деятельность как корневую активность в стеке
8
A
ответ
5
Если вы пройдете эту документацию http://developer.android.com/reference/android/content/Intent.html, вы можете увидеть различные флаги намерений и их использование.
В частности, для вашего вопроса, необходимо использовать FLAG_ACTIVITY_CLEAR_TASK которая очистит любую существующую задачу, которая будет ассоциироваться с деятельностью, прежде чем деятельность начинается т.е. деятельность становится новый корень из другой пустой задачи, и все старые действия завершены.
2
Установить корневой активности
Intent intent = new Intent(this, DActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
+1
он очистит все предыдущие действия из стека – Munir
** FLAG_ACTIVITY_CLEAR_TASK ** не работает сама по себе. Вам необходимо установить его в сочетании с ** Intent.FLAG_ACTIVITY_NEW_TASK ** (из документации для Android). – Borzh