我学习了Android WorkManager,并且遇到了一个问题。
我有2个作品,其中第一个作品从服务器和第二个预加载资源中获取一些数据(取决于第一个作品的结果)。我需要每小时做一次这种链条。
我需要类似的东西:
workManager.beginWith(work1).then(work2)
但是在WorkManger API中,我发现仅针对OneTimeWorkRequest的链。
答案 0 :(得分:0)
您不能链接PeriodicWorkRequest
。对于您的用例,您可以考虑将OneTimeWorkRequest
与Worker
一起使用,并在doWork()
的末尾以初始延迟将自身的副本放入队列(以模拟周期性)。
这样,您仍然可以进行链接。我会一致地标记所有工作请求,以便您可以正确getWorkInfosByTagLiveData()
。
答案 1 :(得分:0)
将安德鲁的评论提升为答案:
Google公开了添加此功能的票证 (请参阅here)。
Google的官方解决方案是创建一个“链启动”工作人员的定期工作请求,该工作人员的doWork()定义并排队一连串的一次性工作请求。