Sobes.tech
Junior

Milyen életciklus-módszereket ismersz az Activity-ben, és hogyan hajtódnak végre?

sobes.tech MI

Válasz az MI-től

  • onCreate(): Hívás az Activity első létrehozásakor. UI és adatok inicializálására szolgál.
  • onStart(): Az Activity láthatóvá válik a felhasználó számára.
  • onResume(): Az Activity aktívvá válik és az első terven van. A felhasználó interakcióba léphet vele.
  • onPause(): Hívás, amikor az Activity a háttérbe kerül vagy egy másik Activity részben elfoglalja. Állapot mentésére szolgál, amit gyorsan vissza lehet állítani.
  • onStop(): Az Activity már nem látható a felhasználónak. Erőforrások felszabadítására szolgál.
  • onDestroy(): Az Activity megsemmisítése előtt hívódik. Végső erőforrás tisztítására szolgál.
  • onRestart(): A onStop() után hívódik, amikor az Activity újra láthatóvá válik.

A metódusok végrehajtási sorrendje indításkor: onCreate() -> onStart() -> onResume().

A metódusok végrehajtási sorrendje, amikor a háttérbe kerül (például a Home gomb megnyomásakor): onPause() -> onStop().

A metódusok végrehajtási sorrendje, amikor visszatérünk a háttérből: onRestart() -> onStart() -> onResume().

A metódusok végrehajtási sorrendje az Activity megsemmisítésekor: onPause() -> onStop() -> onDestroy().

Az képernyő forgatásakor az Activity megsemmisül és újra létrejön. Sorrend: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Az állapot mentésére az onSaveInstanceState() (a onStop() előtt hívódik) és az állapot visszaállítására az onCreate() vagy onRestoreInstanceState() (a onStart() után hívódik) szolgál.

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // UI inicializálása
        // Állapot visszaállítása a savedInstanceState-ből
    }

    override fun onStart() {
        super.onStart()
        // Az Activity láthatóvá válik
    }

    override fun onResume() {
        super.onResume()
        // Az Activity az első terven, elérhető a felhasználó számára
    }

    override fun onPause() {
        super.onPause()
        // Az Activity a háttérbe kerül
        // Gyorsan visszaállítandó állapot mentése
    }

    override fun onStop() {
        super.onStop()
        // Az Activity nem látható
        // Erőforrások felszabadítása
    }

    override fun onDestroy() {
        super.onDestroy()
        // Az Activity megsemmisül
        // Végső erőforrás tisztítás
    }

    override fun onRestart() {
        super.onRestart()
        // Az Activity a háttérből visszatér
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Állapot mentése az megsemmisítés előtt
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Állapot visszaállítása
    }
}