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 实例中线程处理的更多信息。