WorkManager 中的多线程

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

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

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