Jetpack Compose Academy · Lekcja

LaunchedEffect dla korutyn

Uruchamiaj pracę suspend powiązaną z kompozycją

Lekcja 1 z 413 kroki

LaunchedEffect dla korutyn to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 1 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 Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Efekty działają poza kompozycją

Elementy Composable powinny być czyste i mogą być wykonywane wiele razy. Gdy trzeba wykonać rzeczywistą pracę, na przykład wywołanie sieciowe, należy użyć mechanizmu side effect.

Poznaj LaunchedEffect

LaunchedEffect uruchamia kod zawieszający w coroutine powiązanej z miejscem, w którym znajduje się ona w kompozycji. Idealnie nadaje się do jednorazowych zadań startowych. 🚀

Uruchamia się przy wejściu

Gdy element LaunchedEffect po raz pierwszy pojawia się w kompozycji, uruchamia swój blok. Gdy opuszcza kompozycję, coroutine jest automatycznie anulowana.

LaunchedEffect(Unit) {
    loadProfile()
}

Klucz steruje ponownym uruchamianiem

Pierwszy argument to key. Jeśli klucz zmieni się między rekompozycjami, stara coroutine zostanie anulowana, a rozpocznie się nowa.

LaunchedEffect(userId) {
    user = fetchUser(userId)
}

Użyj Unit, aby wykonać raz

Przekazanie Unit (lub true) jako klucza oznacza, że efekt nigdy nie zostanie uruchomiony ponownie. Wykona się tylko raz, gdy element Composable pojawi się na ekranie.

LaunchedEffect(Unit) {
    analytics.logScreenView()
}

Funkcje zawieszające są dozwolone

Wewnątrz bloku możesz swobodnie wywoływać funkcje suspend, takie jak delay lub żądanie Retrofit. Zakres coroutine jest udostępniany automatycznie.

LaunchedEffect(Unit) {
    delay(2000)
    showSplash = false
}

Nigdy nie uruchamiaj coroutine w treści

Bezpośrednie wywołanie coroutine w treści elementu Composable jest błędem. Treść jest wykonywana ponownie przy każdej rekompozycji, więc praca byłaby uruchamiana wciąż od nowa.

Anulowanie jest automatyczne

Gdy użytkownik przejdzie gdzie indziej, a element Composable opuści ekran, Compose cancels coroutine. Nie trzeba ręcznie sprzątać i nie dochodzi do wycieków.

Połącz ze stanem

Efekty zwykle zapisują wynik w state, aby interfejs został ponownie narysowany. Zapisz pobrane dane, a rekompozycja je wyświetli.

var data by remember { mutableStateOf<List<Item>>(emptyList()) }
LaunchedEffect(Unit) { data = repo.load() }

Wiele kluczy dla połączonych wyzwalaczy

Możesz przekazać kilka kluczy. Efekt uruchomi się ponownie, gdy zmieni się any z nich, co przydaje się na przykład do ponownego pobierania danych po zmianie filtrów.

LaunchedEffect(query, sort) {
    results = search(query, sort)
}

Typowy wzorzec ładowania

Całość przypomina przepis: ustaw loading na true, zaczekaj na wynik, a następnie go zapisz. Compose obsługuje cykl życia wokół Twojej coroutine.

LaunchedEffect(id) {
    loading = true
    item = repo.get(id)
    loading = false
}

Szybkie sprawdzenie

Zastanów się, jak steruje się ponownym uruchamianiem.

Podsumowanie: LaunchedEffect

Dobra robota! LaunchedEffect uruchamia kod zawieszający powiązany z kompozycją, wykonuje się ponownie po zmianie klucza i automatycznie się anuluje, gdy element Composable ją opuszcza. 🎯

Bezpłatny start

Ucz się Kotlin dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „LaunchedEffect dla korutyn” jest bezpłatna?

Tak — pełny tekst „LaunchedEffect dla korutyn” 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 Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „LaunchedEffect dla korutyn”?

Uruchamiaj pracę suspend powiązaną z kompozycją Ćwiczysz Jetpack Compose 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ąć Jetpack Compose Academy?

Nie wymagamy żadnego doświadczenia. Jetpack Compose 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 1 z 4.

Ile czasu zajmuje lekcja „LaunchedEffect dla korutyn”?

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 Jetpack Compose Academy?

Tak. Każda lekcja Jetpack Compose 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. LaunchedEffect dla korutyn
  2. rememberCoroutineScope dla zdarzeń
  3. DisposableEffect i sprzątanie
  4. derivedStateOf i snapshotFlow
← Powrót do Jetpack Compose Academy