有没有办法在第一次应用程序启动时不执行工作人员

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))。