Sobes.tech
Junior

Hogyan lehet meghatározni egy Activity-ben, hogy megsemmisült-e?

sobes.tech MI

Válasz az MI-től

Írd felül az onDestroy() metódust.

class MyActivity : AppCompatActivity() {

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

    override fun onDestroy() {
        super.onDestroy()
        // Ez a kódblokk az Activity megsemmisítése után fog lefutni
        // Itt felszabadíthat erőforrásokat, leiratkozhat Observable-ról stb.
    }
}

Másik módszer a LifecycleObserver használata LifecycleOwner-lel az Activity-ben.

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() {
            // Ez a metódus az ON_DESTROY eseménykor lesz meghívva
            // Egyenértékű az onDestroy()-val
        }
    }
}