0Pricing
Android Academy · Lektion

Grundlagen und Scopes von Coroutines

Starten Sie Coroutines im passenden Scope.

Grundlagen und Scopes von Coroutines ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was sind Coroutines?

Coroutines ermöglichen es Ihnen, asynchronen, nicht blockierenden Code in einem sequenziellen Stil zu schreiben. Sie sind die Kotlin-Antwort auf Callbacks und Threads für Aufgaben wie Netzwerk- und Datenbank-I/O.

suspend-Funktionen

Eine mit suspend markierte Funktion kann pausieren, ohne den Thread zu blockieren, und später fortgesetzt werden. Sie kann nur aus einer Coroutine oder einer anderen suspend-Funktion aufgerufen werden.

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

Suspendieren vs. Blockieren

delay suspendiert die Coroutine, gibt den Thread jedoch für andere Aufgaben frei. Thread.sleep blockiert den gesamten Thread. Coroutines setzen auf Suspendieren, um effizient zu bleiben.

Eine Coroutine starten

Starten Sie eine Coroutine mit launch in einem CoroutineScope. Sie läuft nebenläufig und gibt kein Ergebnis zurück.

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

Mit async ein Ergebnis erhalten

Verwenden Sie async, wenn Sie einen Wert zurück benötigen. Es gibt ein Deferred zurück, auf das Sie mit await warten.

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

Was ist ein CoroutineScope?

Ein Scope legt die Lebensdauer der darin gestarteten Coroutines fest. Wenn Sie den Scope abbrechen, werden alle darin enthaltenen Coroutines abgebrochen. Das nennt man strukturierte Nebenläufigkeit.

Strukturierte Nebenläufigkeit

Da Coroutines innerhalb eines Scopes leben, können sie diesen nicht versehentlich überleben. Das verhindert Leaks: Wenn der Bildschirm verschwindet, wird sein Scope abgebrochen und seine Arbeit beendet.

Abbruch

Beim Abbrechen eines Scopes oder Jobs wird am nächsten Suspendierungspunkt eine CancellationException ausgelöst, wodurch die Coroutine sauber beendet wird.

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

Kooperativer Abbruch

Coroutines müssen kooperieren: Lange CPU-Schleifen sollten isActive prüfen oder eine suspend-Funktion aufrufen, damit der Abbruch wirksam werden kann.

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

Ausnahmen in Coroutines

Eine nicht abgefangene Ausnahme in einer launch-Coroutine wird an den Scope weitergegeben und bricht deren Geschwister-Coroutines ab (außer bei Verwendung eines SupervisorJob). Behandeln Sie Fehler mit try/catch oder einem CoroutineExceptionHandler.

Warum Scopes in Android wichtig sind

Android stellt vorgefertigte Scopes bereit, die an die Lebenszyklen von Komponenten gebunden sind – etwa viewModelScope und lifecycleScope –, sodass Ihre Coroutines automatisch zum richtigen Zeitpunkt abgebrochen werden. Das ist Thema der nächsten Lektion.

Schnelltest

Testen Sie Ihr Verständnis von Coroutine-Scopes.

Zusammenfassung

Sie haben gelernt:

  • suspend-Funktionen pausieren, ohne zu blockieren.
  • launch startet Arbeit ohne Rückgabewert; async gibt ein Ergebnis zurück.
  • Ein CoroutineScope begrenzt die Lebensdauer von Coroutines (strukturierte Nebenläufigkeit).
  • Abbruch erfolgt kooperativ.

Häufig gestellte Fragen

Ist die Lektion „Grundlagen und Scopes von Coroutines“ kostenlos?

Ja — der vollständige Text von „Grundlagen und Scopes von Coroutines“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grundlagen und Scopes von Coroutines“?

Starten Sie Coroutines im passenden Scope. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Grundlagen und Scopes von Coroutines“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen und Scopes von Coroutines
  2. viewModelScope und Dispatchers
  3. Grundlagen von Kotlin Flow
  4. StateFlow und SharedFlow
← Zurück zu Android Academy