Назад к вопросам
Junior
84
questionbank
Как в Activity определить, что она была уничтожена?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Переопределить метод onDestroy().
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
override fun onDestroy() {
super.onDestroy()
// Этот блок кода выполнится после уничтожения Activity
// Здесь можно освободить ресурсы, отписаться от Observable и т.д.
}
}
Другой способ — использовать LifecycleObserver с LifecycleOwner Activity.
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
class MyActivity : AppCompatActivity() {
private lateinit var myLifecycleObserver: MyLifecycleObserver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
myLifecycleObserver = MyLifecycleObserver()
lifecycle.addObserver(myLifecycleObserver)
}
// ...
inner class MyLifecycleObserver : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroyEvent() {
// Этот метод вызовется при событии ON_DESTROY
// Equivalent to onDestroy()
}
}
}