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()
}
}
}