我现在已经使用了 JobScheduler
一段时间了 . 一个典型的例子是:
JobScheduler
触发 onStartJob()
方法 . 这开始了某种任务,可能包括其他几个后台进程(获取设备位置,进行网络呼叫等) . 然后,一旦任务完成或失败,我就使用接口回调 JobService
.
但是,使用 WorkManager
似乎基本上没有办法异步运行工作 . 我知道 WorkManager
将在一个单独的线程中运行Workers但看起来像一个单独的工作者必须同步运行?如果是这样的话我就错过了什么 .
假设我有一个天气应用程序,它将使用 JobScheduler
运行 JobService
执行以下操作:
onStartJob()
- >获取设备位置 - >为本地天气数据发出API请求 - >写入数据库 - >调用jobFinished()
使用 WorkManager
,是否可以将多个工作者链接在一起?如果是这样,您如何将数据从一个工作者传递到另一个工作者?同样,对于任何稍微复杂的应用程序来说,迁移到 WorkManager
API似乎都是一项艰巨的任务 .