Какие знаешь типы launchMode

«Какие знаешь типы launchMode» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

launchMode определяет, как новый экземпляр Activity будет связан с текущей задачей (task).

  1. standard (по умолчанию) – каждый запуск создаёт новый экземпляр Activity, даже если он уже существует.
  2. singleTop – если Activity уже на вершине стека, новый инстанс не создаётся, а вызывается onNewIntent(). Если не на вершине – создаётся новый.
  3. singleTask – система ищет Activity в существующей задаче. Если находит – очищает стек над ним и вызывает onNewIntent(). Если нет – создаёт новый экземпляр.
  4. singleInstance – аналогично singleTask, но Activity всегда в отдельной задаче.

Пример в AndroidManifest.xml:

<activity android:name=".MyActivity" android:launchMode="singleTop" />

Нюансы:

  • singleTask и singleInstance могут влиять на навигацию (например, очистка стека).
  • Для singleTop важно проверять intent в onNewIntent().