Назад к вопросам
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()
        }
    }
}