0Pricing
Android Academy · Lekcja

Podstawy korutyn i zakresów

Uruchamiaj korutyny we właściwym zakresie

Podstawy korutyn i zakresów to bezpłatna lekcja Android 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 Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.

Czym są korutyny?

Korutyny umożliwiają pisanie asynchronicznego, nieblokującego kodu w stylu sekwencyjnym. Są odpowiedzią Kotlina na wywołania zwrotne i wątki w zadaniach takich jak operacje wejścia-wyjścia sieciowe i bazodanowe.

Funkcje suspend

Funkcja oznaczona jako suspend może się wstrzymać bez blokowania wątku, a następnie wznowić działanie. Można ją wywołać tylko z korutyny lub innej funkcji suspend.

suspend fun fetchUser(): User {
    delay(1000) // non-blocking pause
    return User(1, "Ada", "ada@x.com")
}

Wstrzymywanie a blokowanie

delay wstrzymuje korutynę, ale zwalnia wątek do innych zadań. Thread.sleep blokuje cały wątek. Korutyny preferują wstrzymywanie, aby działać wydajnie.

Uruchamianie korutyny

Korutynę uruchamia się za pomocą launch w obiekcie CoroutineScope. Działa współbieżnie i nie zwraca wyniku.

scope.launch {
    val user = fetchUser()
    println(user.name)
}

Pobieranie wyniku za pomocą async

Użyj async, gdy potrzebujesz otrzymać wartość. Zwraca on obiekt Deferred, na którym wywołuje się await.

val deferred = scope.async { fetchUser() }
val user = deferred.await()

Czym jest CoroutineScope?

Zakres określa czas życia uruchomionych w nim korutyn. Anulowanie zakresu powoduje anulowanie wszystkich jego korutyn. Jest to strukturalna współbieżność.

Strukturalna współbieżność

Ponieważ korutyny działają wewnątrz zakresu, nie mogą przypadkowo działać dłużej niż on. Zapobiega to wyciekom: gdy ekran znika, jego zakres zostaje anulowany, a jego praca zostaje zatrzymana.

Anulowanie

Anulowanie zakresu lub zadania powoduje zgłoszenie wyjątku CancellationException w najbliższym punkcie wstrzymania, co bezpiecznie zatrzymuje korutynę.

val job = scope.launch { /* work */ }
job.cancel() // stops it cooperatively

Kooperatywne anulowanie

Korutyny muszą współpracować: długie pętle obliczeniowe powinny sprawdzać isActive lub wywoływać funkcję suspend, aby anulowanie mogło zadziałać.

while (isActive) {
    // do a chunk of work
}

Wyjątki w korutynach

Nieobsłużony wyjątek w funkcji launch propaguje się do zakresu i anuluje jego korutyny siostrzane (chyba że używany jest SupervisorJob). Błędy należy obsługiwać za pomocą try/catch lub CoroutineExceptionHandler.

Dlaczego zakresy mają znaczenie w Androidzie

Android udostępnia gotowe zakresy powiązane z cyklem życia komponentów — takie jak viewModelScope i lifecycleScope — dzięki czemu korutyny są automatycznie anulowane we właściwym momencie. Temu poświęcona jest następna lekcja.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat zakresów korutyn.

Powtórzenie

Uczestnik nauczył się:

  • Funkcje suspend wstrzymują działanie bez blokowania.
  • launch uruchamia pracę bez oczekiwania na wynik, a async zwraca wynik.
  • CoroutineScope ogranicza czas życia korutyn (strukturalna współbieżność).
  • Anulowanie ma charakter kooperatywny.

Często zadawane pytania

Czy lekcja „Podstawy korutyn i zakresów” jest bezpłatna?

Tak — pełny tekst „Podstawy korutyn i zakresów” 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 „Podstawy korutyn i zakresów”?

Uruchamiaj korutyny we właściwym zakresie Ć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 1 z 4.

Ile czasu zajmuje lekcja „Podstawy korutyn i zakresów”?

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. Podstawy korutyn i zakresów
  2. viewModelScope i Dispatchers
  3. Podstawy Kotlin Flow
  4. StateFlow i SharedFlow
← Powrót do Android Academy