LaunchedEffect dla korutyn
Uruchamiaj pracę suspend powiązaną z kompozycją
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. 🎯
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
- LaunchedEffect dla korutyn
- rememberCoroutineScope dla zdarzeń
- DisposableEffect i sprzątanie
- derivedStateOf i snapshotFlow