Wątki w usłudze WorkManager
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W artykule Pierwsze kroki z WorkManagerem wspomnieliśmy, że usługa WorkManager wykonuje pracę w tle asynchronicznie w Twoim imieniu. Implementacja podstawowa zaspokaja potrzeby większości aplikacji. W przypadku bardziej zaawansowanych przypadków użycia, takich jak prawidłowa obsługa zatrzymywania zadań, dowiedz się więcej o wątkach i równoczesności w WorkManager.
WorkManager udostępnia 4 rodzaje podstawowych elementów pracy:
Worker
to najprostsza implementacja omówiona w poprzednich sekcjach. WorkManager automatycznie uruchamia ją w wątku w tle (który możesz zastąpić). Więcej informacji o wątkach w instancjach Worker
znajdziesz w artykule Threading in Worker.
- Implementacja
CoroutineWorker
jest zalecana dla użytkowników Kotlin. CoroutineWorker
instancja udostępnia funkcję zawieszania na potrzeby pracy w tle. Domyślnie działają one w standardzie Dispatcher
, które możesz dostosować. Więcej informacji o wątkach w instancjach CoroutineWorker
znajdziesz w artykule Threading in CoroutineWorker.
- Implementacja
RxWorker
jest zalecana w przypadku użytkowników RxJava. Narzędzia RxWorkers należy używać, jeśli duża część Twojego kodu asynchronicznego jest modelowana w języku RxJava. Tak jak w przypadku wszystkich projektów RxJava,
możesz wybrać dowolną strategię podziału na wątki. Więcej informacji o wątkach w instancjach RxWorker
znajdziesz w artykule Threading in RxWorker.
ListenableWorker
to klasa podstawowa elementów Worker
, CoroutineWorker
i RxWorker
. Jest on przeznaczony dla programistów Javy, którzy muszą korzystać z asynchronicznych interfejsów API opartych na wywołaniach zwrotnych, takich jak FusedLocationProviderClient
, i nie korzystają z RxJava. Więcej informacji o wątkach w instancjach ListenableWorker
znajdziesz w artykule Threading in ListenableWorker.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[null,null,["Ostatnia aktualizacja: 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)."]]