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 instancjachWorker
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 standardzieDispatcher
, które możesz dostosować. Więcej informacji o wątkach w instancjachCoroutineWorker
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 instancjachRxWorker
znajdziesz w artykule Threading in RxWorker. ListenableWorker
to klasa podstawowa elementówWorker
,CoroutineWorker
iRxWorker
. Jest on przeznaczony dla programistów Javy, którzy muszą korzystać z asynchronicznych interfejsów API opartych na wywołaniach zwrotnych, takich jakFusedLocationProviderClient
, i nie korzystają z RxJava. Więcej informacji o wątkach w instancjachListenableWorker
znajdziesz w artykule Threading in ListenableWorker.