有没有一种方法可以在第一次应用程序启动时不执行工作者



背景:我使用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((。

最新更新