Sobes.tech
Junior

Como determinar numa Activity que ela foi destruída?

sobes.tech IA

Resposta da IA

Sobrescrever o método onDestroy().

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
    }

    override fun onDestroy() {
        super.onDestroy()
        // Este bloco de código será executado após destruir a Activity
        // Aqui pode libertar recursos, cancelar subscrições de Observable, etc.
    }
}

Outra forma é usar LifecycleObserver com LifecycleOwner na 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() {
            // Este método será chamado no evento ON_DESTROY
            // Equivale a onDestroy()
        }
    }
}