我正在使用workmanager->periodicworkrequest设置数据库与服务器的定期后台同步。
val workManager = WorkManager.getInstance()
val syncFileWork = PeriodicWorkRequestBuilder<FileSyncWorker>(
intervalInMins,
TimeUnit.MINUTES,
PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS,
TimeUnit.MILLISECONDS
)
.setInputData(mapOf(KEY_FROM_PERIODIC_SYNC to true).toWorkData())
.addTag("PeriodicSyncRequest")
.build()
workManager
?.enqueueUniquePeriodicWork("PeriodicSyncRequest", ExistingPeriodicWorkPolicy.REPLACE, syncFileWork)
这个钻头工作正常。
我单独使用
OneTimeWorkRequest
要在用户执行刷新操作时与服务器同步,请执行以下操作:
val workManager = WorkManager.getInstance()
val syncFileWork = OneTimeWorkRequestBuilder<FileSyncWorker>()
.addTag("SyncRequest")
.build()
workManager
?.beginUniqueWork("ManualSync", ExistingWorkPolicy.KEEP, syncFileWork)
?.enqueue()
这也行。
现在我想使用定期请求来代替一次性请求。我的主要原因是在用户手动同步后触发定期请求时不进行双重同步。
有没有办法触发
PeriodicWorkRequest
从代码中,所以我可以替换
一次性工作请求
打电话给
周期工作请求
.