WorkManager中的线程

WorkManager入门中,我们提到WorkManager会代表您异步执行后台工作。基本实现可以满足大多数应用程序的需求。对于更高级的用例,例如正确处理工作被停止的情况,您应该了解WorkManager中的线程和并发。

WorkManager提供了四种不同类型的基本工作单元

  • Worker是最简单的实现,也是您在前面章节中看到的实现。WorkManager会自动在后台线程上运行它(您可以覆盖此行为)。在Worker中的线程中阅读更多关于Worker实例中线程的信息。
  • CoroutineWorker是Kotlin用户的推荐实现。CoroutineWorker实例公开了一个用于后台工作的挂起函数。默认情况下,它们运行默认的Dispatcher,您可以自定义它。在CoroutineWorker中的线程中阅读更多关于CoroutineWorker实例中线程的信息。
  • RxWorker是RxJava用户的推荐实现。如果您的许多现有异步代码都是用RxJava建模的,则应该使用RxWorkers。与所有RxJava概念一样,您可以自由选择您选择的线程策略。在RxWorker中的线程中阅读更多关于RxWorker实例中线程的信息。
  • ListenableWorkerWorkerCoroutineWorkerRxWorker的基类。它适用于必须与基于回调的异步API(例如FusedLocationProviderClient)交互并且未使用RxJava的Java开发者。在ListenableWorker中的线程中阅读更多关于ListenableWorker实例中线程的信息。