Junior
Jakie metody cyklu życia Activity znasz i jak są one wykonywane?
sobes.tech AI
Odpowiedź od AI
onCreate(): Wywoływana podczas pierwszego tworzenia Activity. Używana do inicjalizacji interfejsu użytkownika i danych.onStart(): Activity staje się widoczna dla użytkownika.onResume(): Activity staje się aktywna i znajduje się na pierwszym planie. Użytkownik może z nią wchodzić w interakcję.onPause(): Wywoływana, gdy Activity przechodzi na tył lub inna Activity ją częściowo zakrywa. Używana do zapisywania stanu, który musi być szybko przywrócony.onStop(): Activity nie jest już widoczna dla użytkownika. Używana do zwalniania nieużywanych zasobów.onDestroy(): Wywoływana przed zniszczeniem Activity. Używana do końcowego czyszczenia zasobów.onRestart(): Wywoływana poonStop(), gdy Activity ponownie staje się widoczna.
Sekwencja wywołań metod przy starcie: onCreate() -> onStart() -> onResume().
Sekwencja przy przejściu w tło (np. przy naciśnięciu przycisku Home): onPause() -> onStop().
Sekwencja przy powrocie z tła: onRestart() -> onStart() -> onResume().
Sekwencja przy niszczeniu Activity: onPause() -> onStop() -> onDestroy().
Przy obrocie ekranu Activity jest niszczona i tworzona na nowo. Sekwencja: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Do zapisywania stanu używa się onSaveInstanceState() (wywoływane przed onStop()) i odtwarzania w onCreate() lub onRestoreInstanceState() (wywoływane po onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Inicjalizacja UI
// Odzyskiwanie stanu z savedInstanceState
}
override fun onStart() {
super.onStart()
// Activity staje się widoczna
}
override fun onResume() {
super.onResume()
// Activity jest na pierwszym planie, dostępna do interakcji
}
override fun onPause() {
super.onPause()
// Activity przechodzi w tło
// Zapisywanie stanu do szybkiego przywrócenia
}
override fun onStop() {
super.onStop()
// Activity nie jest widoczna
// Zwolnienie zasobów
}
override fun onDestroy() {
super.onDestroy()
// Activity jest niszczona
// Końcowe czyszczenie zasobów
}
override fun onRestart() {
super.onRestart()
// Activity wraca z tła
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Zapis stanu przed zniszczeniem
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Przywracanie stanu
}
}