Какой Lifecycle у Jetpack Compose

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

Ответ

Compose использует собственный lifecycle, управляемый через LifecycleOwner (Activity/Fragment). Основные фазы:

  1. Active - композиция отображается на экране
  2. Inactive - композиция в бэкграунде, но еще не уничтожена
  3. Disposed - композиция полностью удалена

Ключевые API для работы с lifecycle:

DisposableEffect(key) {
    // Эффект при входе в композицию
    onDispose { 
        // Очистка при выходе
    }
}

val lifecycle = LocalLifecycleOwner.current.lifecycle
val state by lifecycle.currentStateFlow.collectAsState()

remember сохраняет значение только в Active фазе. Для сохранения между конфигурациями используйте rememberSaveable.