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