Junior
Koje metode životnog ciklusa Activity poznajete i kako se one izvršavaju?
sobes.tech АИ
Одговор од АИ
onCreate(): Poziva se pri prvom kreiranju aktivnosti. Koristi se za inicijalizaciju korisničkog interfejsa i podataka.onStart(): Aktivnost postaje vidljiva korisniku.onResume(): Aktivnost postaje aktivna i nalazi se na prednjem planu. Korisnik može da interaguje s njom.onPause(): Poziva se kada aktivnost prelazi u pozadinu ili je druga aktivnost delimično pokriva. Koristi se za čuvanje stanja koje je potrebno brzo obnoviti.onStop(): Aktivnost više nije vidljiva korisniku. Koristi se za oslobađanje neiskorišćenih resursa.onDestroy(): Poziva se pre nego što će aktivnost biti uništena. Koristi se za završno čišćenje resursa.onRestart(): Poziva se nakononStop(), kada se aktivnost ponovo postane vidljiva.
Redosled izvršavanja metoda pri pokretanju: onCreate() -> onStart() -> onResume().
Redosled izvršavanja metoda pri prelasku u pozadinu (npr. pritiskom na dugme Home): onPause() -> onStop().
Redosled izvršavanja metoda pri povratku iz pozadine: onRestart() -> onStart() -> onResume().
Redosled izvršavanja metoda pri uništavanju aktivnosti: onPause() -> onStop() -> onDestroy().
Pri okretanju ekrana, aktivnost se uništava i ponovo kreira. Redosled: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Za čuvanje stanja koristi se onSaveInstanceState() (poziva se pre onStop()) i obnavljanje u onCreate() ili onRestoreInstanceState() (poziva se nakon onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Inicijalizacija UI
// Obnavljanje stanja iz savedInstanceState
}
override fun onStart() {
super.onStart()
// Aktivnost postaje vidljiva
}
override fun onResume() {
super.onResume()
// Aktivnost je na prednjem planu, dostupna za interakciju
}
override fun onPause() {
super.onPause()
// Aktivnost prelazi u pozadinu
// Čuvanje brzo obnavljajućeg stanja
}
override fun onStop() {
super.onStop()
// Aktivnost nije vidljiva
// Oslobađanje resursa
}
override fun onDestroy() {
super.onDestroy()
// Aktivnost se uništava
// Završno čišćenje resursa
}
override fun onRestart() {
super.onRestart()
// Aktivnost se vraća iz pozadine
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Čuvanje stanja pre uništavanja
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Obnavljanje stanja
}
}