Метод onDestroy
Метод onDestroy интерфейса
DefaultLifecycleObserver
вызывается при Lifecycle.Event.ON_DESTROY.
После этого
State
становится DESTROYED.
Здесь снимают последние привязки к owner.
Синтаксис
override fun onDestroy(owner: LifecycleOwner) { }
Параметры
| Параметр | Описание |
|---|---|
owner |
Компонент, который уничтожают. |
Пример
Давайте запишем флаг в onDestroy observer:
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
class MainActivity : ComponentActivity() {
private var destroyedLabel = "abcde"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val observer = object : DefaultLifecycleObserver {
override fun onDestroy(owner: LifecycleOwner) {
destroyedLabel = "12345"
}
}
lifecycle.addObserver(observer)
setContent {
var text by remember { mutableStateOf("abcde") }
Text(text = text)
}
}
}
На экране виден "abcde",
а поле destroyedLabel станет "12345"
при уничтожении Activity.
Смотрите также
-
метод
onStop,
который вызывают перед onDestroy -
метод
onCleared,
который чистит ViewModel отдельно -
перечисление
State,
где DESTROYED - финальный этап -
класс
DefaultLifecycleObserver,
где объявлен onDestroy