OneTimeWorkRequest 和 PeriodicWorkRequest 可以一起使用吗?
Can OneTimeWorkRequest and PeriodicWorkRequest be used together?
我使用 WorkManager 并且我有一个 Worker,并且我 运行 它会以 1 小时为间隔定期进行。但是在某些特殊情况下,我可以运行 这个Worker with OneTimeWorkRequest 吗?
如果我这样做,它会结束 PeriodicWorkRequest 吗?
执行此操作的最佳方法是什么?
您可以在两个不同的 WorkRequest 中使用同一个 Worker class:
val oneTimeWorkRequest: WorkRequest = OneTimeWorkRequestBuilder<MyWork>()
.addTag("OneTime")
.build()
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWork>(1, TimeUnit.HOURS)
.addTag("Periodic")
.build()
val workManager = WorkManager.getInstance(myContext)
workManager.enqueue(oneTimeWorkRequest)
workManager.enqueue(periodicWorkRequest)
然后,如果需要,您可以在 Worker 中使用 getTags() 来检测当前正在执行的 WorkRequest。
我使用 WorkManager 并且我有一个 Worker,并且我 运行 它会以 1 小时为间隔定期进行。但是在某些特殊情况下,我可以运行 这个Worker with OneTimeWorkRequest 吗? 如果我这样做,它会结束 PeriodicWorkRequest 吗?
执行此操作的最佳方法是什么?
您可以在两个不同的 WorkRequest 中使用同一个 Worker class:
val oneTimeWorkRequest: WorkRequest = OneTimeWorkRequestBuilder<MyWork>()
.addTag("OneTime")
.build()
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWork>(1, TimeUnit.HOURS)
.addTag("Periodic")
.build()
val workManager = WorkManager.getInstance(myContext)
workManager.enqueue(oneTimeWorkRequest)
workManager.enqueue(periodicWorkRequest)
然后,如果需要,您可以在 Worker 中使用 getTags() 来检测当前正在执行的 WorkRequest。