Spec-Zone.ru › Kotlin 2

Жизненный цикл

Жизненный цикл компонентов в Compose Multiplatform основан на концепции жизненного цикла из Jetpack Compose. Компоненты, учитывающие жизненный цикл, могут реагировать на изменения состояния жизненного цикла других компонентов и помогать создавать более упорядоченный и зачастую более лёгкий код, который проще сопровождать.

Compose Multiplatform предоставляет общую реализацию LifecycleOwner, которая расширяет исходную функциональность Jetpack Compose на другие платформы и позволяет отслеживать состояния жизненного цикла в общем коде.

Чтобы использовать мультиплатформенную реализацию Lifecycle, добавьте следующую зависимость в набор исходного кода commonMain:

kotlin { // ... sourceSets { // ... commonMain.dependencies { // ... implementation("org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.11.0") } // ... } }

Следить за изменениями мультиплатформенной реализации Lifecycle можно в разделе «Что нового» или за выпусками EAP в журнале изменений Compose Multiplatform.

Состояния и события

Поток состояний и событий жизненного цикла (такой же, как и для жизненного цикла Jetpack):

Lifecycle diagram

Реализация жизненного цикла

Обычно компонуемым функциям не нужны отдельные жизненные циклы: общий LifecycleOwner предоставляет жизненный цикл всем взаимосвязанным сущностям. По умолчанию все компонуемые функции, созданные Compose Multiplatform, используют один и тот же жизненный цикл — они могут подписываться на его события, обращаться к состоянию жизненного цикла и так далее.

Объект LifecycleOwner предоставляется как CompositionLocal. Если вы хотите управлять жизненным циклом отдельно для определённого поддерева компонуемых функций, вы можете создать собственную реализацию LifecycleOwner.

При работе с корутинами в мультиплатформенных жизненных циклах помните, что значение Lifecycle.coroutineScope связано со значением Dispatchers.Main.immediate, которое по умолчанию может быть недоступно на целевых платформах для настольных компьютеров. Чтобы корутины и потоки в жизненных циклах корректно работали с Compose Multiplatform, добавьте в проект зависимость kotlinx-coroutines-swing. Подробности см. в документации Dispatchers.Main.

  • Узнайте, как работает жизненный цикл в компонентах навигации, в разделе «Навигация и маршрутизация».

  • Подробнее о мультиплатформенной реализации ViewModel см. на странице «Мультиплатформенная ViewModel».

Соответствие жизненного цикла Android другим платформам

iOS

События и уведомления платформы

Событие жизненного цикла

Изменение состояния жизненного цикла

viewDidDisappear

ON_STOP

STARTED → CREATED

viewWillAppear

ON_START

CREATED → STARTED

willResignActive

ON_PAUSE

RESUMED → STARTED

didBecomeActive

ON_RESUME

STARTED → RESUMED

didEnterBackground

ON_STOP

STARTED → CREATED

willEnterForeground

ON_START

CREATED → STARTED

viewControllerDidLeaveWindowHierarchy

ON_DESTROY

CREATED → DESTROYED

Веб

Из-за ограничений целевой платформы Wasm жизненные циклы:

  • Пропускают состояние CREATED, так как приложение всегда подключено к странице.

  • Никогда не переходят в состояние DESTROYED, так как веб-страницы обычно закрываются только при закрытии вкладки пользователем.

Событие платформы

Событие жизненного цикла

Изменение состояния жизненного цикла

visibilitychange (становится видимым)

ON_START

CREATED → STARTED

focus

ON_RESUME

STARTED → RESUMED

blur

ON_PAUSE

RESUMED → STARTED

visibilitychange (перестаёт быть видимым)

ON_STOP

STARTED → CREATED

Настольные компьютеры

Обратные вызовы слушателей Swing

Событие жизненного цикла

Изменение состояния жизненного цикла

windowIconified

ON_STOP

STARTED → CREATED

windowDeiconified

ON_START

CREATED → STARTED

windowLostFocus

ON_PAUSE

RESUMED → STARTED

windowGainedFocus

ON_RESUME

STARTED → RESUMED

dispose

ON_DESTROY

CREATED → DESTROYED

2 сентября 2025 г.
Управление локальным окружением ресурсовМультиплатформенная ViewModel

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/compose-lifecycle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API