Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
339 of 502 menu
◀ ▶

Класс LifecycleOwner

Интерфейс LifecycleOwner объявляет свойство lifecycle типа Lifecycle. Его реализуют ComponentActivity, Fragment и другие компоненты. В Compose текущего владельца даёт LocalLifecycleOwner.

Синтаксис

val lifecycle = lifecycleOwner.lifecycle

Пример

Давайте возьмём LifecycleOwner из Compose:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.lifecycle.compose.LocalLifecycleOwner class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val owner = LocalLifecycleOwner.current val state = owner.lifecycle.currentState Text( text = if (state.isAtLeast( androidx.lifecycle.Lifecycle.State.STARTED, )) { "12345" } else { "abcde" }, ) } } }

На экране при видимой активности обычно будет текст "12345".

Пример

Давайте используем this активности как owner:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.lifecycle.LifecycleOwner class MainActivity : ComponentActivity(), LifecycleOwner { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val owner: LifecycleOwner = this@MainActivity Text(text = owner.lifecycle.currentState.name) } } }

На экране появится имя текущего Lifecycle.State, например RESUMED.

Смотрите также

  • класс Lifecycle,
    который возвращает LifecycleOwner
  • класс LocalLifecycleOwner,
    откуда берут owner в composable
  • перечисление State,
    которым описывают этап lifecycle
  • функция repeatOnLifecycle,
    которая принимает LifecycleOwner
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить