可以在首次启动应用程序时不执行工作程序的方法

问题描述 投票:0回答:1

背景:我正在使用WorkManager每2天更新一次本地缓存。这是在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库本身中寻找一个选项。

android android-workmanager
1个回答
0
投票

您应该在PeriodicWorkRequest上设置初始延迟(例如,使用此方法:https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setInitialDelay(long,%20java.util.concurrent.TimeUnit)。]]

© www.soinside.com 2019 - 2024. All rights reserved.