在 WorkManager 中进行线程处理

前面的部分中,我们提到了 WorkManager 可以代表您异步执行后台工作。该基本实现可满足大多数应用的需求。关于更高级的用例(例如正确处理正在停止的工作),您应了解 WorkManager 中的线程处理和并发。

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

  • Worker 是最简单的实现,前面几节已经有所介绍。WorkManager 会在后台线程上自动运行它(您可以将它替换掉)。请参阅工作器中的线程处理,详细了解 Worker 中的线程处理。
  • 建议 Kotlin 用户实现 CoroutineWorkerCoroutineWorker 针对后台工作公开挂起函数。默认情况下,它们运行默认的 Dispatcher,您可以对其进行自定义。请参阅 CorventineWorker 中的线程处理,详细了解 CoroutineWorker 中的线程处理。
  • 建议 RxJava2 用户实现 RxWorker。如果您有很多现有异步代码是用 RxJava 建模的,则应使用 RxWirkers。与所有 RxJava2 概念一样,您可以自由选择所需的线程处理策略。请参阅 RxWorker 中的线程处理,详细了解 RxWorker 中的线程处理。
  • ListenableWorkerWorkerCoroutineWorkerRxWorker 的基类。该类专为需要与基于回调的异步 API(例如 FusedLocationProviderClient)进行交互并且不使用 RxJava2 的 Java 开发者而设计。请参阅 ListenableWorker 中的线程处理,详细了解 ListenableWorker 中的线程处理。