我正在使用新的WorkManager,想知道当我安排定期工作时,如何避免重新安排它,它是否由OS自动处理?
答案 0 :(得分:0)
这是一个定期工作程序,因此它会自动处理重新安排下一次发生的时间。
为避免重新安排它,可以从Worker返回Result.failed(),也可以从应用中取消WorkRequest
。在这种情况下,您应该按照documentation中的说明处理Worker
内部的取消。
答案 1 :(得分:0)
如果您只是因为不想重复工作而需要检查已经在运行的工作管理器。您可以简单地使用enqueueUniquePeriodicWork()
此方法可让您排队一个唯一名称的 PeriodicWorkRequest,其中只有一个 特定名称可以一次处于活动状态。例如,您只能 希望激活一个同步操作。如果有一个未决,您可以 选择运行它还是将其替换为您的新作品。
因此您无需担心作品的重复性。
workmanager.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.KEEP , photoCheckWork);
ExistingPeriodicWorkPolicy.KEEP
和ExistingPeriodicWorkPolicy.REPLACE
。