Threading in WorkManager
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In Erste Schritte mit WorkManager wurde erwähnt, dass WorkManager Hintergrundarbeiten asynchron in Ihrem Namen ausführt. Die einfache Implementierung erfüllt die Anforderungen der meisten Apps. Für erweiterte Anwendungsfälle wie das Anhalten von Aufgaben sollten Sie sich über Threading und Nebenläufigkeit in WorkManager informieren.
WorkManager bietet vier verschiedene Arten von Arbeitsgrundlagen:
Worker
ist die einfachste und auch in den vorherigen Abschnitten verwendete Implementierung. WorkManager führt sie automatisch in einem Hintergrundthread aus (kann überschrieben werden). Weitere Informationen zu Threading in Worker
-Instanzen finden Sie unter Threading in Worker.
CoroutineWorker
ist die empfohlene Implementierung für Kotlin-Nutzer. CoroutineWorker
-Instanzen stellen eine Anhaltenfunktion für Hintergrundarbeiten bereit. Standardmäßig wird ein Dispatcher
-Standard ausgeführt, den Sie anpassen können. Weitere Informationen zu Threading in CoroutineWorker
-Instanzen finden Sie unter Threading in Coroutine Worker.
RxWorker
ist die empfohlene Implementierung für RxJava-Nutzer. RxWorkers sollten verwendet werden, wenn ein Großteil Ihres vorhandenen asynchronen Codes in RxJava modelliert wird. Wie bei allen RxJava-Konzepten können Sie die Threading-Strategie Ihrer Wahl wählen. Weitere Informationen zum Threading in RxWorker
-Instanzen finden Sie unter Threading in RxWorker.
ListenableWorker
ist die Basisklasse für Worker
, CoroutineWorker
und RxWorker
. Es richtet sich an Java-Entwickler, die mit Callback-basierten asynchronen APIs wie FusedLocationProviderClient
interagieren müssen und nicht RxJava verwenden. Weitere Informationen zum Threading in ListenableWorker
-Instanzen finden Sie unter Threading in ListenableWorker.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-26 (UTC)."],[],[],null,["# Threading in WorkManager\n\nIn [Getting started with WorkManager](/topic/libraries/architecture/workmanager/basics),\nwe mentioned that WorkManager performs background work asynchronously on your\nbehalf. The basic implementation addresses the demands of most apps. For more\nadvanced use cases, such as correctly handling work being stopped, you should\nlearn about threading and concurrency in WorkManager.\n\nThere are four different types of work primitives provided by WorkManager:\n\n- [`Worker`](/reference/androidx/work/Worker) is the simplest implementation, and the one you have seen in previous sections. WorkManager automatically runs it on a background thread (that you can override). Read more about threading in `Worker` instances in [Threading in Worker](/topic/libraries/architecture/workmanager/advanced/worker).\n- [`CoroutineWorker`](/reference/kotlin/androidx/work/CoroutineWorker) is the recommended implementation for Kotlin users. `CoroutineWorker` instances expose a suspending function for background work. By default, they run a default `Dispatcher`, which you can customize. Read more about threading in `CoroutineWorker` instances in [Threading in CoroutineWorker](/topic/libraries/architecture/workmanager/advanced/coroutineworker).\n- [`RxWorker`](/reference/androidx/work/RxWorker) is the recommended implementation for RxJava users. RxWorkers should be used if a lot of your existing asynchronous code is modelled in RxJava. As with all RxJava concepts, you are free to choose the threading strategy of your choice. Read more about threading in `RxWorker` instances in [Threading in RxWorker](/topic/libraries/architecture/workmanager/advanced/rxworker).\n- [`ListenableWorker`](/reference/androidx/work/ListenableWorker) is the base class for `Worker`, `CoroutineWorker`, and `RxWorker`. It is intended for Java developers who have to interact with callback-based asynchronous APIs such as `FusedLocationProviderClient` and are not using RxJava. Read more about threading in `ListenableWorker` instances in [Threading in ListenableWorker](/topic/libraries/architecture/workmanager/advanced/listenableworker)."]]