如何实现PeriodicWorkRequest链?

时间:2018-10-31 21:19:33

标签: android android-jetpack android-workmanager

我学习了Android WorkManager,并且遇到了一个问题。

我有2个作品,其中第一个作品从服务器和第二个预加载资源中获取一些数据(取决于第一个作品的结果)。我需要每小时做一次这种链条。

我需要类似的东西:

workManager.beginWith(work1).then(work2)

但是在WorkManger API中,我发现仅针对OneTimeWorkRequest的链。

2 个答案:

答案 0 :(得分:0)

您不能链接PeriodicWorkRequest。对于您的用例,您可以考虑将OneTimeWorkRequestWorker一起使用,并在doWork()的末尾以初始延迟将自身的副本放入队列(以模拟周期性)。

这样,您仍然可以进行链接。我会一致地标记所有工作请求,以便您可以正确getWorkInfosByTagLiveData()

答案 1 :(得分:0)

将安德鲁的评论提升为答案:

Google公开了添加此功能的票证 (请参阅here)。

Google的官方解决方案是创建一个“链启动”工作人员的定期工作请求,该工作人员的doWork()定义并排队一连串的一次性工作请求。