Cykl życia Androida
Poznaj cykle życia aktywności i kompozycji
Cykl życia Androida to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.
Czym jest cykl życia?
Każda platforma Android Activity przechodzi przez szereg stanów, gdy użytkownik otwiera aplikację, opuszcza ją i do niej wraca. To właśnie cykl życia.
Jego zrozumienie pozwala uruchamiać i zatrzymywać pracę we właściwych momentach.
Podstawowe wywołania zwrotne Activity
Klasyczne wywołania zwrotne cyklu życia Activity są wykonywane w następującej kolejności:
onCreate— trwa tworzenie Activity.onStart— Activity staje się widoczna.onResume— Activity jest na pierwszym planie i można z nią wchodzić w interakcję.onPause/onStop/onDestroy— opuszczanie Activity.
Typowy przebieg
Otwieranie aplikacji: onCreate → onStart → onResume.
Naciśnięcie przycisku ekranu głównego: onPause → onStop.
Powrót: onRestart → onStart → onResume.
Stany cyklu życia a zdarzenia
Biblioteka Jetpack Lifecycle modeluje ten proces za pomocą stanów (CREATED, STARTED, RESUMED, DESTROYED) oraz zdarzeń (ON_CREATE, ON_START, ...).
Komponenty mogą obserwować te elementy zamiast zastępować bezpośrednie wywołania zwrotne.
LifecycleOwner
Activity, Fragmenty i hosty Compose są obiektami LifecycleOwner. Udostępniają obiekt Lifecycle, który mogą obserwować inne komponenty.
val owner: LifecycleOwner = this // an Activity
val lifecycle = owner.lifecycleDlaczego ma to znaczenie dla zasobów
Wiele zasobów powinno być aktywnych tylko wtedy, gdy ekran jest widoczny:
- Aktualizacje lokalizacji.
- Nasłuchiwanie sensorów.
- Sesje kamery.
Uruchamiaj je w onStart/onResume, a zatrzymuj w onStop/onPause, aby oszczędzać baterię i unikać wycieków pamięci.
Cykl życia w Jetpack Compose
Kompozytory nie mają wywołań zwrotnych Activity. Zamiast tego mają cykl życia kompozycji: wchodzą do kompozycji, są ponownie komponowane, a ostatecznie ją opuszczają.
Reagowanie na kompozycję za pomocą DisposableEffect
DisposableEffect wykonuje konfigurację, gdy kompozytor wchodzi do kompozycji, oraz sprzątanie, gdy ją opuszcza.
@Composable
fun Screen() {
DisposableEffect(Unit) {
// setup, e.g. register listener
onDispose {
// cleanup when leaving composition
}
}
}Obserwowanie rzeczywistego cyklu życia w Compose
Aby reagować na rzeczywiste zdarzenia cyklu życia Activity z poziomu kompozytora, obserwuj LifecycleOwner za pomocą DefaultLifecycleObserver.
@Composable
fun OnResume(onResume: () -> Unit) {
val owner = LocalLifecycleOwner.current
DisposableEffect(owner) {
val obs = object : DefaultLifecycleObserver {
override fun onResume(o: LifecycleOwner) = onResume()
}
owner.lifecycle.addObserver(obs)
onDispose { owner.lifecycle.removeObserver(obs) }
}
}ViewModel a cykl życia
Pamiętaj: ViewModel przetrwa poszczególne stany cyklu życia, takie jak onStart/onStop. Jest czyszczony dopiero wtedy, gdy właściciel zostanie trwale usunięty. Właśnie dlatego można bezpiecznie przechowywać w nim stan.
Połączenie wszystkich elementów
Dobrze zaprojektowany ekran:
- Przechowuje trwały stan w obiekcie ViewModel.
- Uruchamia i zatrzymuje zasoby używane tylko podczas widoczności ekranu, uwzględniając cykl życia.
- Gromadzi dane z przepływów tylko wtedy, gdy interfejs użytkownika jest co najmniej w stanie STARTED (w następnej lekcji).
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat cyklu życia.
Podsumowanie
Nauczyłeś się:
- Activity przechodzą przez stany CREATED, STARTED, RESUMED i DESTROYED.
- Compose ma własny cykl życia kompozycji, obsługiwany za pomocą
DisposableEffect. - Obserwować
LifecycleOwner, aby reagować na rzeczywiste zdarzenia cyklu życia. - ViewModel celowo przetrwa te stany.
Często zadawane pytania
Czy lekcja „Cykl życia Androida” jest bezpłatna?
Tak — pełny tekst „Cykl życia Androida” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Cykl życia Androida”?
Poznaj cykle życia aktywności i kompozycji Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Cykl życia Androida”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego warto używać ViewModel?
- Udostępnianie stanu z ViewModel
- Cykl życia Androida
- collectAsStateWithLifecycle