覆盖工作管理器的截止日期(Android Studio)



既然Work Manager正在取代Job Scheduler,我正试图弄清楚如何使用OneTimeWorkRequest为Work Manager设置覆盖截止日期,就像我们在Job Scheduler中所做的那样。我试着浏览这组约束,但找不到相应的约束。我还查看了OneTimeWorkRequest.Builder中的选项,但再次一无所获。我该如何设置覆盖截止日期?

setOverrideDeadline根据其文档,即使您的其他约束没有得到满足,也会导致您的作业运行。WorkManager并不这么做:它总是尊重您的约束。

当然,您可以使用setInitialDelay将第二个工作请求排队到您想要的"覆盖截止日期",而不包括您的其他约束和特定标记。

这意味着你会有两个排队的工人:

  1. 真正的工作者,有约束和标签,比如"real_work"
  2. 覆盖截止日期工作程序,没有约束、初始延迟和标记,例如"override"

如果真正的工作人员被解雇,您可以调用workManager.cancelAllWorkByTag("override")来取消您的覆盖截止日期工作人员并照常进行。

如果您的覆盖截止日期工作人员被解雇,这意味着从您将工作人员排队到覆盖截止日期之间没有时间。这是你想制定替代策略的地方(比如在限制较少的情况下让新员工重新排队等(。如果你想取消你的实际工作,这也是你想workManager.cancelAllWorkByTag("real_work")的地方。

相关内容

最新更新