Junior
Aké metódy životného cyklu Activity poznáte a ako sa vykonávajú?
sobes.tech AI
Odpoveď od AI
onCreate(): Volá sa pri prvom vytvorení Activity. Používa sa na inicializáciu používateľského rozhrania a dát.onStart(): Activity sa stáva viditeľnou pre používateľa.onResume(): Activity sa stáva aktívnou a je na prednom pláne. Používateľ s ňou môže interagovať.onPause(): Volá sa, keď aktivita prechádza do pozadia alebo ju iná aktivita čiastočne zakrýva. Používa sa na uloženie stavu, ktorý je potrebné rýchlo obnoviť.onStop(): Aktivita už nie je viditeľná pre používateľa. Používa sa na uvoľnenie nevyužívaných zdrojov.onDestroy(): Volá sa pred tým, než bude aktivita zničená. Používa sa na finálne čistenie zdrojov.onRestart(): Volá sa poonStop(), keď sa aktivita znovu stáva viditeľnou.
Poradie volaní metód pri spustení: onCreate() -> onStart() -> onResume().
Poradie pri prechode do pozadia (napríklad pri stlačení tlačidla Domov): onPause() -> onStop().
Poradie pri návrate z pozadia: onRestart() -> onStart() -> onResume().
Poradie pri zničení Activity: onPause() -> onStop() -> onDestroy().
Pri otočení obrazovky je Activity zničená a znovu vytvorená. Poradie: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Na uloženie stavu sa používa onSaveInstanceState() (volá sa pred onStop()) a obnovenie v onCreate() alebo onRestoreInstanceState() (volá sa po onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Inicializácia UI
// Obnovenie stavu z savedInstanceState
}
override fun onStart() {
super.onStart()
// Activity sa stáva viditeľnou
}
override fun onResume() {
super.onResume()
// Activity je na prednom pláne, dostupná na interakciu
}
override fun onPause() {
super.onPause()
// Activity prechádza do pozadia
// Uloženie rýchlo obnoviteľného stavu
}
override fun onStop() {
super.onStop()
// Activity nie je viditeľná
// Uvoľnenie zdrojov
}
override fun onDestroy() {
super.onDestroy()
// Activity sa ničí
// Finálne čistenie zdrojov
}
override fun onRestart() {
super.onRestart()
// Activity sa vracia z pozadia
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Uloženie stavu pred zničením
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Obnovenie stavu
}
}