【发布时间】:2017-11-18 23:20:54
【问题描述】:
我正在尝试使用evernote 的android-job 安排定期作业每15 分钟运行一次。 问题是作业运行 2-3 次,然后它不是每 15 分钟运行一次。基本上在 8 小时内,当设备处于空闲状态时,它几乎运行了 10-11 次。有什么我做错了吗。我的工作的唯一要求是应该连接已连接的网络。
android-job 库是否在一定程度上保证了该作业将运行?这是我的工作代码
public class TestNetworkJob extends Job {
public static final String TAG = "TestNetworkJob";
@NonNull
@Override
protected Result onRunJob(Params params) {
Timber.i("onRunJob");
RetrofitUtils.getInstance().postSlack("TestCall: " + DateTimeUtils.getLocalizedDateTimeString(System
.currentTimeMillis()));
return Result.SUCCESS;
}
public static JobRequest buildJobRequest() {
return new JobRequest.Builder(TAG)
.setUpdateCurrent(true)
.setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
.setPeriodic(TimeUnit.MINUTES.toMillis(15))
.build();
}
}
【问题讨论】:
-
这听起来像是典型的打盹模式行为。 Evernote 的图书馆并没有抵消这一点。
-
那么我们如何确保每 15 分钟运行一次作业?我认为这就是使用作业调度器 API 的全部意义所在。 @CommonsWare
标签: android android-jobscheduler android-job