[现在,工作管理器正在替换Job Scheduler,我正试图弄清如何像在Job Scheduler中一样使用OneTimeWorkRequest为Work Manager设置替代截止日期。我尝试遍历所有约束,但是找不到等效项。我还浏览了OneTimeWorkRequest.Builder中的选项,但再次找不到任何内容。我将如何设定替代期限?
setOverrideDeadline
,按照its documentation,使您的作业运行即使不满足您的其他约束条件。 WorkManager不会这样做:它始终遵守您的约束。
当然,您可以使用setInitialDelay
将第二个工作请求排队到您想要的“替代期限”,不包括您的其他约束条件和特定标签。
这意味着您将有两个入队工作人员:
setInitialDelay
"real_work"
如果真正的员工被解雇,您可以致电"override"
取消超限期限的员工,然后照常进行。
如果您的超限截止期限工人被解雇,这意味着从您入队到首次超限截止期限之间没有时间。在这里,您要找出替代策略(例如,在约束较少的情况下重新入队新员工等)。如果您想取消自己的真实作品,也想在这里workManager.cancelAllWorkByTag("override")
。