gpt4 book ai didi

android - 带有 WorkManager 的 PeriodicWorkRequest

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:51 25 4
gpt4 key购买 nike

由于 WorkManager 是 Google I/O 中新引入的,我正在尝试使用 workmanager 定期执行任务,

我正在做的是,使用 PeriodicWorkRequest 安排工作,如下所示:

Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
PeriodicWorkRequest build = new PeriodicWorkRequest.Builder(SyncJobWorker.class, MY_SCHEDULE_TIME, TimeUnit.MILLISECONDS)
.addTag(TAG)
.setConstraints(constraints)
.build();

WorkManager instance = WorkManager.getInstance();
if (instance != null) {
instance.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.REPLACE, build);
}

我遇到的问题是,当我请求 PeriodicWorkRequest 时,它也会立即开始工作,

  • 有人知道如何停止立即执行的工作吗?在使用 PeriodicWorkRequest 时。
  • 还想知道我们如何重新安排工作? 如果我想更改已排定的工作时间怎么办?

我正在使用:实现“android.arch.work:work-runtime:1.0.0-alpha04”

我们将不胜感激。

最佳答案

您可以通过在 PeriodicWorkRequest.Builder 中使用弹性周期来实现此目的.例如,如果您希望在重复间隔结束后的 15 分钟内(假设为 8 小时)运行您的 Worker,代码将如下所示:

val periodicRefreshRequest = PeriodicWorkRequest.Builder(
RefreshWorker::class.java, // Your worker class
8, // repeating interval
TimeUnit.HOURS,
15, // flex interval - worker will run somewhen within this period of time, but at the end of repeating interval
TimeUnit.MINUTES
)

Visual ilustration

关于android - 带有 WorkManager 的 PeriodicWorkRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51153003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com