是否有可能在工作中重新安排工作

时间:2017-04-17 07:56:34

标签: android android-jobscheduler

我正在使用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();
}

或者我应该只使用前台服务来实现这一目标?

1 个答案:

答案 0 :(得分:0)

Evernote作业计划程序为based upon JobSchedulerGcmNetworkManagerAlarmManager,具体取决于上下文/设备/播放服务版本。无论实现如何,API都会公开following方法:

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

我会用这个而不是“手动”重新安排工作。如果不在API级别设置重复工作,我也不认为您的setBackoffCriteria电话无效。