Wątki w usłudze WorkManager

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.