PeriodicWorkRequest 触发时间
PeriodicWorkRequest trigger time
我想添加一个触发时间来开始工作,但我找不到办法做到这一点
与工作经理
那是我的代码
PeriodicWorkRequest alarmWork =
new PeriodicWorkRequest.Builder(
AlarmWorker.class,
interval ,
TimeUnit.MILLISECONDS
).setInputData(bundle).build();
WorkManager.getInstance().enqueue(alarmWork)
用法正确;但是,我想你的间隔小于 MIN_PERIODIC_INTERVAL_MILLIS
由于间隔必须大于或等于 15 分钟,PeriodicWorkRequest 不会 运行 在您预期的周期结束时。
您将无法指定执行作品的确切时间。如果您需要在任何打盹模式下都在准确的时间执行任务,您应该使用 AlarmManager。
但是您可以使用 WorkManager 设置初始延迟,如下所示:
OneTimeWorkRequest mywork=
new OneTimeWorkRequest.Builder(MyWorker.class)
.setInitialDelay(12, TimeUnit.HOURS)
.build();
WorkManager.getInstance().enqueue(mywork);
我想添加一个触发时间来开始工作,但我找不到办法做到这一点
与工作经理
那是我的代码
PeriodicWorkRequest alarmWork =
new PeriodicWorkRequest.Builder(
AlarmWorker.class,
interval ,
TimeUnit.MILLISECONDS
).setInputData(bundle).build();
WorkManager.getInstance().enqueue(alarmWork)
用法正确;但是,我想你的间隔小于 MIN_PERIODIC_INTERVAL_MILLIS
由于间隔必须大于或等于 15 分钟,PeriodicWorkRequest 不会 运行 在您预期的周期结束时。
您将无法指定执行作品的确切时间。如果您需要在任何打盹模式下都在准确的时间执行任务,您应该使用 AlarmManager。
但是您可以使用 WorkManager 设置初始延迟,如下所示:
OneTimeWorkRequest mywork=
new OneTimeWorkRequest.Builder(MyWorker.class)
.setInitialDelay(12, TimeUnit.HOURS)
.build();
WorkManager.getInstance().enqueue(mywork);