Метод onStop
Метод onStop интерфейса
DefaultLifecycleObserver
срабатывает при Lifecycle.Event.ON_STOP.
Экран owner больше не виден пользователю,
состояние опускается до CREATED или ниже.
Синтаксис
override fun onStop(owner: LifecycleOwner) { }
Параметры
| Параметр | Описание |
|---|---|
owner |
Компонент, который перестал быть виден. |
Пример
Давайте сменим текст в onStop:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.compose.LocalLifecycleOwner
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val owner = LocalLifecycleOwner.current
var text by remember { mutableStateOf("12345") }
val observer = remember {
object : DefaultLifecycleObserver {
override fun onStop(owner: LifecycleOwner) {
text = "abcde"
}
}
}
DisposableEffect(owner) {
owner.lifecycle.addObserver(observer)
onDispose {
owner.lifecycle.removeObserver(observer)
}
}
Text(text = text)
}
}
}
На экране при ON_STOP подпись сменится
на "abcde", если UI ещё на месте.
Смотрите также
-
метод
onStart,
который парен ON_STOP -
метод
onDestroy,
который завершает цикл -
перечисление
State,
после ON_STOP ниже STARTED -
функция
repeatOnLifecycle,
которая отменяет блок при stop