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

Перечисление State

Перечисление Lifecycle.State задаёт, на каком этапе сейчас Lifecycle. Значения упорядочены: чем дальше по списку, тем ближе экран к пользователю. Сравнение делают через isAtLeast или передают в repeatOnLifecycle.

Синтаксис

Lifecycle.State.STARTED

Значения

Значение Описание
DESTROYED Компонент уничтожен, observer больше не получает события.
INITIALIZED Объект создан, но onCreate ещё не вызывали.
CREATED После onCreate. UI может быть не виден.
STARTED Экран виден, но может быть не в фокусе. Часто от этого этапа собирают Flow.
RESUMED Activity на переднем плане и принимает ввод.

При уходе с экрана состояние спускается от RESUMED к DESTROYED по цепочке событий onPause, onStop, onDestroy.

Пример

Давайте покажем RESUMED как активный этап:

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

На экране при RESUMED будет "12345", иначе "abcde".

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

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