背景:我使用WorkManager每两天更新一次本地缓存。这是在Application类中配置的,以便在应用程序启动时立即安排。
问题:工作程序在第一次应用程序启动时立即执行,而不是安排它。
代码:
val configuration = Configuration.Builder()
.setWorkerFactory(workerFactory)
.setMinimumLoggingLevel(Log.DEBUG)
.build()
WorkManager.initialize(appContext, configuration)
val workRequest = PeriodicWorkRequestBuilder<ConfigWorker>(2, TimeUnit.DAYS)
.build()
val workManager = WorkManager.getInstance(appContext)
workManager.enqueueUniquePeriodicWork(
"config_worker_request",
ExistingPeriodicWorkPolicy.KEEP,
workRequest
)
实际上,我在寻找一种不会在工人排队后立即执行的东西。有选择吗?
我可以在第一次启动应用程序时使用标志来解决这个问题,但我正在从WorkManager库本身寻找一个选项。
您应该在PeriodicWorkRequest
上设置一个初始延迟(例如,使用此方法:https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setInitialDelay(long,%20java.util.concurrent.TimeUnit((。