0Pricing
Android Academy · Lekcja

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.lifecycle

Dlaczego 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

  1. Dlaczego warto używać ViewModel?
  2. Udostępnianie stanu z ViewModel
  3. Cykl życia Androida
  4. collectAsStateWithLifecycle
← Powrót do Android Academy