Como criar threads no WorkManager
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Em Primeiros passos com o WorkManager,
mencionamos que o WorkManager realiza trabalho em segundo plano de forma assíncrona por
você. A implementação básica atende às demandas da maioria dos apps. Para casos
de uso mais avançados, como lidar corretamente com a interrupção do trabalho, você precisa
aprender sobre linhas de execução e simultaneidade no WorkManager.
Há quatro tipos diferentes de primitivos de trabalho fornecidos pelo WorkManager:
Worker
é a implementação mais simples
e a que você viu nas seções anteriores. O WorkManager o executa
automaticamente em uma linha de execução em segundo plano, que você pode substituir. Leia mais sobre linhas de execução em
instâncias Worker
em Linhas de execução no Worker.
CoroutineWorker
é a
implementação recomendada para os usuários do Kotlin. As instâncias CoroutineWorker
expõem uma função de suspensão para trabalho em segundo plano. Elas executam um
Dispatcher
padrão, que pode ser personalizado. Leia mais sobre linhas de execução em instâncias
CoroutineWorker
em Threads no CoroutineWorker.
RxWorker
é a implementação
recomendada para os usuários do RxJava. Use os RxWorkers se grande parte do
código assíncrono existente for modelado no RxJava. Assim como ocorre com todos os conceitos do RxJava,
você pode escolher a estratégia de linha de execução de sua preferência. Leia mais sobre
linhas de execução em instâncias RxWorker
em Linhas de execução no RxWorker.
ListenableWorker
é a classe
base para Worker
, CoroutineWorker
e RxWorker
. Ela é destinada a
desenvolvedores Java que precisam interagir com APIs assíncronas baseadas em callback,
como FusedLocationProviderClient
, e que não estejam usando RxJava. Leia mais
sobre linhas de execução em instâncias ListenableWorker
em Threads no ListenableWorker.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-26 UTC.
[null,null,["Última atualização 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)."]]