Ответ
launchMode определяет, как новый экземпляр Activity будет связан с текущей задачей (task).
- standard (по умолчанию) – каждый запуск создаёт новый экземпляр Activity, даже если он уже существует.
- singleTop – если Activity уже на вершине стека, новый инстанс не создаётся, а вызывается
onNewIntent(). Если не на вершине – создаётся новый. - singleTask – система ищет Activity в существующей задаче. Если находит – очищает стек над ним и вызывает
onNewIntent(). Если нет – создаёт новый экземпляр. - singleInstance – аналогично
singleTask, но Activity всегда в отдельной задаче.
Пример в AndroidManifest.xml:
<activity android:name=".MyActivity" android:launchMode="singleTop" />
Нюансы:
singleTaskиsingleInstanceмогут влиять на навигацию (например, очистка стека).- Для
singleTopважно проверятьintentвonNewIntent().