有没有办法在第一次应用程序启动时不执行工作人员
Is there a way to not execute the worker on first app launch
背景:
我使用 WorkManager 每 2 天更新一次本地缓存。这是在应用程序 class 中配置的,因此它会在应用程序启动时立即安排。
问题:
worker 在第一次应用程序启动时立即执行,而不是安排它。
代码:
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))。
背景: 我使用 WorkManager 每 2 天更新一次本地缓存。这是在应用程序 class 中配置的,因此它会在应用程序启动时立即安排。
问题: worker 在第一次应用程序启动时立即执行,而不是安排它。
代码:
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))。