PeriodicWorkRequest 不考虑重复时间

PeriodicWorkRequest don't respect the repetition time

我对工作请求 (1.0.0-alpha10) 有疑问 假设我想每 5 小时启动一项工作(在我的例子中是通知),我会执行以下操作

static void StartWorker(){
PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(NotifyWorker.class, 5, TimeUnit.HOURS,3000,TimeUnit.MILLISECONDS)
            .addTag("ok")
           .build();
}

但问题是通知甚至在 20 分钟后才开始,这很奇怪,因为它真的是随机的,我知道两次通知之间不能恰好间隔 5 小时,但预计会在 4:30 小时内有点过分了。

NotifyWorker class是这样的:

public class NotifyWorker extends Worker {

public NotifyWorker(@NonNull Context context, @NonNull WorkerParameters params) {
    super(context, params);
}

@NonNull
@Override
public Worker.Result doWork() {

    // Method to trigger an instant notification

    Context context= getApplicationContext();

    notification();

    return Worker.Result.SUCCESS;

}

}

我做错了什么? 我正在使用带有 Android 8.0.0 的 Galaxy S8 进行调试。

根据我的理解,Flex Interval是任务可以执行的最短等待时间。因此,您必须将弹性间隔从 300 毫秒更改为 295 分钟(4 小时 55 分钟)。 periodic work request

}