Junior
Jaké metody životního cyklu Activity znáte a jak jsou prováděny?
sobes.tech AI
Odpověď od AI
onCreate(): Volá při prvním vytvoření aktivity. Používá se k inicializaci uživatelského rozhraní a dat.onStart(): Aktivita se stává viditelnou pro uživatele.onResume(): Aktivita se stává aktivní a je na předním plánu. Uživatel s ní může interagovat.onPause(): Volá se, když aktivita přechází na pozadí nebo ji jiná aktivita částečně zakrývá. Používá se k uložení stavu, který je třeba rychle obnovit.onStop(): Aktivita již není viditelná pro uživatele. Používá se k uvolnění nevyužívaných zdrojů.onDestroy(): Volá se před tím, než bude aktivita zničena. Používá se k finálnímu čištění zdrojů.onRestart(): Volá se poonStop(), když se aktivita znovu stává viditelnou.
Pořadí volání metod při spuštění: onCreate() -> onStart() -> onResume().
Pořadí volání metod při přechodu na pozadí (například při stisknutí tlačítka Domů): onPause() -> onStop().
Pořadí volání metod při návratu z pozadí: onRestart() -> onStart() -> onResume().
Pořadí volání metod při zničení aktivity: onPause() -> onStop() -> onDestroy().
Při otočení obrazovky je aktivita zničena a znovu vytvořena. Pořadí: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Pro uložení stavu se používá onSaveInstanceState() (volá se před onStop()) a obnovení v onCreate() nebo onRestoreInstanceState() (volá se po onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Inicializace UI
// Obnovení stavu z savedInstanceState
}
override fun onStart() {
super.onStart()
// Aktivita se stává viditelnou
}
override fun onResume() {
super.onResume()
// Aktivita je na předním plánu, dostupná k interakci
}
override fun onPause() {
super.onPause()
// Aktivita přechází na pozadí
// Uložení rychle obnovitelného stavu
}
override fun onStop() {
super.onStop()
// Aktivita není viditelná
// Uvolnění zdrojů
}
override fun onDestroy() {
super.onDestroy()
// Aktivita je zničena
// Finální čištění zdrojů
}
override fun onRestart() {
super.onRestart()
// Aktivita se vrací z pozadí
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Uložení stavu před zničením
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Obnovení stavu
}
}