【问题标题】:Android JobScheduler: job with time constraintsAndroid JobScheduler:有时间限制的工作
【发布时间】:2017-01-11 15:18:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: android android-jobscheduler


    【解决方案1】:

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

    不,抱歉。

    【讨论】:

    【解决方案2】:

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

    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 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      相关资源
      最近更新 更多