В режиме singleTask создается единственный инстанс активити. Если активити не содержится в бэкстеке, то она создается, как при режиме 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().