В каких случаях перезапускается LaunchedEffect

«В каких случаях перезапускается LaunchedEffect» — вопрос из категории Jetpack Compose, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

LaunchedEffect перезапускается в двух случаях:

  1. Изменение ключа (первого параметра). При изменении ключа предыдущий эффект отменяется и запускается новый:
LaunchedEffect(key) { // перезапустится при изменении key
    // эффект
}
  1. Изменение Composition. Если композиция перезапускается (например, при повороте экрана или изменении конфигурации), эффект также перезапускается.

Для предотвращения перезапуска используйте rememberUpdatedState или константные ключи. Если нужно выполнить эффект только один раз - передайте Unit или другую константу в качестве ключа.