standard
. Если же активити была создана ранее, то на ней вызывается метод onNewIntent()
. При этом уничтожаются все активити, которые находятся выше в бэкстеке.Пример 1. Допустим, есть бэкстек
A -> B -> C
. Активити D запускается в режиме singleTask
. Бэкстек переходит в состояние A -> B -> C -> D
.Пример 2. Бэкстек имеет вид
A -> B -> C -> D
. Активити B запускается в режиме singleTask
. Бэкстек переходит в состояние A -> B
. На активити B вызывается onNewIntent()
, а на активити C и D – onDestroy()
.Режим singleInstance позволяет запустить активити в новой задаче. Бэкстек этой задачи будет содержать только созданную активити.
Пример. Пусть бэкстек состоит из активити
A -> B -> C
. Активити D стартует в режиме singleInstance
. В системе создается отдельная задача и бэкстеки выглядят так: Task 1:
A -> B -> C
Task 2:
D
Если после этого стартовать активити E в режиме standard и снова запустить D, то бэкстеки будут иметь вид:
Task 1:
A -> B -> C -> E
Task 2:
D
Если активити уже запущена в режиме
singleInstance
, то при повторном старте будет вызван метод onNewIntent()
.