为 PeriodicWorkRequest 设置初始延迟的任何方式
Any way to have initial delay for PeriodicWorkRequest
对于OneTimeWorkRequest
,我们可以setInitialDelay
指定初始延迟。
但是,PeriodicWorkRequest
没有这样的设施。
有什么靠谱的方法吗?
一种不太可靠的方法是延迟 OneTimeWorkRequest
worker 来设置 PeriodicWorkRequest
。但是,这非常麻烦,并且有可能 OneTimeWorkRequest
可能会失败并且无法安装 PeriodicWorkRequest
.
由于系统 运行 是您的工作,因此您无法控制它 运行..
的确切时间
创建工作执行延迟的最佳选择是使用此 PeriodicWorkRequest.Builder
并提供 flexInterval
作为第四个参数:
PeriodicWorkRequest build = new PeriodicWorkRequest.Builder(
SyncJobWorker.class,
REPEAT_INTERVAL, // repeatInterval
TimeUnit.MILLISECONDS, // repeatIntervalTimeUnit
FLEX_INTERVAL, // flexInterval
TimeUnit.MILLISECONDS) // flexIntervalTimeUnit
.build();
Creates a PeriodicWorkRequest to run periodically once within the flex period of every interval period. See diagram below. The flex period begins at intervalMillis - flexMillis to the end of the interval. intervalMillis must be greater than or equal to PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS and flexMillis must be greater than or equal to PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS.
由于 androidx.work:work-*:2.1.0
,PeriodicWorkRequests
支持初始延迟。您可以在 PeriodicWorkRequest.Builder
上使用 setInitialDelay
方法来设置初始延迟。
请参阅 link 获取官方文档。
对于OneTimeWorkRequest
,我们可以setInitialDelay
指定初始延迟。
但是,PeriodicWorkRequest
没有这样的设施。
有什么靠谱的方法吗?
一种不太可靠的方法是延迟 OneTimeWorkRequest
worker 来设置 PeriodicWorkRequest
。但是,这非常麻烦,并且有可能 OneTimeWorkRequest
可能会失败并且无法安装 PeriodicWorkRequest
.
由于系统 运行 是您的工作,因此您无法控制它 运行..
的确切时间创建工作执行延迟的最佳选择是使用此 PeriodicWorkRequest.Builder
并提供 flexInterval
作为第四个参数:
PeriodicWorkRequest build = new PeriodicWorkRequest.Builder(
SyncJobWorker.class,
REPEAT_INTERVAL, // repeatInterval
TimeUnit.MILLISECONDS, // repeatIntervalTimeUnit
FLEX_INTERVAL, // flexInterval
TimeUnit.MILLISECONDS) // flexIntervalTimeUnit
.build();
Creates a PeriodicWorkRequest to run periodically once within the flex period of every interval period. See diagram below. The flex period begins at intervalMillis - flexMillis to the end of the interval. intervalMillis must be greater than or equal to PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS and flexMillis must be greater than or equal to PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS.
由于 androidx.work:work-*:2.1.0
,PeriodicWorkRequests
支持初始延迟。您可以在 PeriodicWorkRequest.Builder
上使用 setInitialDelay
方法来设置初始延迟。
请参阅 link 获取官方文档。