Жизненный цикл
Жизненный цикл компонентов в Compose Multiplatform основан на концепции жизненного цикла из Jetpack Compose. Компоненты, учитывающие жизненный цикл, могут реагировать на изменения состояния жизненного цикла других компонентов и помогать создавать более упорядоченный и зачастую более лёгкий код, который проще сопровождать.
Compose Multiplatform предоставляет общую реализацию LifecycleOwner, которая расширяет исходную функциональность Jetpack Compose на другие платформы и позволяет отслеживать состояния жизненного цикла в общем коде.
Чтобы использовать мультиплатформенную реализацию Lifecycle, добавьте следующую зависимость в набор исходного кода commonMain:
Состояния и события
Поток состояний и событий жизненного цикла (такой же, как и для жизненного цикла Jetpack):
Реализация жизненного цикла
Обычно компонуемым функциям не нужны отдельные жизненные циклы: общий LifecycleOwner предоставляет жизненный цикл всем взаимосвязанным сущностям. По умолчанию все компонуемые функции, созданные Compose Multiplatform, используют один и тот же жизненный цикл — они могут подписываться на его события, обращаться к состоянию жизненного цикла и так далее.
При работе с корутинами в мультиплатформенных жизненных циклах помните, что значение Lifecycle.coroutineScope связано со значением Dispatchers.Main.immediate, которое по умолчанию может быть недоступно на целевых платформах для настольных компьютеров. Чтобы корутины и потоки в жизненных циклах корректно работали с Compose Multiplatform, добавьте в проект зависимость kotlinx-coroutines-swing. Подробности см. в документации Dispatchers.Main.
Узнайте, как работает жизненный цикл в компонентах навигации, в разделе «Навигация и маршрутизация».
Подробнее о мультиплатформенной реализации ViewModel см. на странице «Мультиплатформенная ViewModel».
Соответствие жизненного цикла Android другим платформам
iOS
События и уведомления платформы |
Событие жизненного цикла |
Изменение состояния жизненного цикла |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Веб
Из-за ограничений целевой платформы Wasm жизненные циклы:
Пропускают состояние
CREATED, так как приложение всегда подключено к странице.Никогда не переходят в состояние
DESTROYED, так как веб-страницы обычно закрываются только при закрытии вкладки пользователем.
Событие платформы |
Событие жизненного цикла |
Изменение состояния жизненного цикла |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Настольные компьютеры
Обратные вызовы слушателей Swing |
Событие жизненного цикла |
Изменение состояния жизненного цикла |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
© 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