【问题标题】:Is it possible to re-schedule job within your job是否可以在您的工作中重新安排工作
【发布时间】:2017-04-17 07:56:33
【问题描述】:

我正在使用 Evernote 的 JobScheduler。该库提供了一种设置周期性作业的方法,但重复之间的最小间隔为 15 分钟。

我希望能够每隔几分钟(最多 3 个,最少 2 个)将用户的位置发送到服务器。在工作完成后一次又一次地安排你的旧工作在技术上是否可行?像这样的:

protected Result onRunJob(Params params)
{
    // my actual job runs here

    schedulePeriodicJob();
    return Result.SUCCESS;
}

private void schedulePeriodicJob()
{
    jobId = new JobRequest.Builder(ScheduleJob.TAG)
            .setExact(TimeUnit.MINUTES.toMillis(2))
            .setBackoffCriteria(TimeUnit.MINUTES.toMillis(1), JobRequest.BackoffPolicy.LINEAR)
            .build()
            .schedule();
}

或者我应该简单地使用前台服务来实现这一点?

【问题讨论】:

    标签: android android-jobscheduler


    【解决方案1】:

    Evernote 作业调度程序是 based uponJobSchedulerGcmNetworkManagerAlarmManager,具体取决于上下文/设备/playservices 版本。无论实现方式如何,API 都会公开following 方法:

    public JobRequest.Builder setPeriodic(long intervalMs, long flexMs)
    

    我会使用这个而不是“手动”重新安排工作。如果不在 API 级别设置重复作业,我也不认为您的 setBackoffCriteria 调用将不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2015-05-14
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      相关资源
      最近更新 更多