1

JobScheduler可以构建具有JobInfo某些约束的网络,例如“仅在充电时”和/或“仅在空闲时”和/或“仅在连接到未计量(例如 WiFi)网络时”。

是否可以指定作业运行时间的限制例如“不在上午 9.15 和上午 10.15 之间”?因此,您可以将它与“仅使用 WiFi”结合使用,这样如果 WiFi 在上午 9.30 开启,则所有约束都尚未满足,它会等到上午 10.15 运行。

对于一次性工作,这在某种程度上似乎可以使用builder.setMinimumLatency()and builder.setOverrideDeadline(),但是对于使用 建立的定期工作builder.setPeriodic()(不可能将其与其他工作结合使用)呢?

4

2 回答 2

0

是否可以指定作业运行时间的限制,例如“不在上午 9.15 和上午 10.15 之间”?

不,对不起。

于 2016-09-03T19:16:27.467 回答
0

你可以做这样的事情不知道它是否遵循良好的做法,但你的工作会完成;)

void timeCheck() {
    Date date = Calendar.getInstance().getTime();
    int hour = Integer.parseInt(new SimpleDateFormat("HH").format(date));
    int minute = Integer.parseInt(new SimpleDateFormat("mm").format(date));
    int remainingHours = 10 - hour;
    int remainingMinutes = 15 - minute;
    long timeRemainingInMinutes = remainingHours * 60 + remainingMinutes;
    if (timeRemainingInMinutes >= -60 && timeRemainingInMinutes < 0) {
         yourTask();
    } else {
         // startTimer and on remaining time complete do your task 
    }
}
于 2018-10-19T12:07:56.093 回答