Sobes.tech
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 po onStop(), 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
    }
}