qwe*_*rtz 11 android synchronization milliseconds job-scheduling android-wifi
我注意到我的预定JobScheduler经常执行工作方式.我有它设置每日执行,它需要被闲置,是对WLAN和被充电,但是当这些条件得到满足的作业执行像每一个10分钟,甚至更频繁.
我的代码:
JobInfo.Builder builder = new JobInfo.Builder(1,
new ComponentName(context.getPackageName(), SyncJobService.class.getName()));
builder.setPeriodic(TimeUnit.DAYS.toMillis(1))
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setRequiresCharging(true)
.setRequiresDeviceIdle(true);
int code = jobScheduler.schedule(builder.build());
if (code <= 0) {
Log.e(TAG, "Could not scheduled job: " + code);
return;
}
Log.e(TAG, "Scheduled job");
Run Code Online (Sandbox Code Playgroud)
该作业执行后台线程从互联网下载数据,完成数据下载后,我打电话
mService.jobFinished(mParams, true);
Run Code Online (Sandbox Code Playgroud)
通知作业调度程序作业已完成,并应重新计划.即使这段时间设定为一天,工作怎么经常执行?我的android 6.0.1设备几乎从不进入打盹模式,因为工作经常运行.
Com*_*are 18
数据下载完成后,我打电话
mService.jobFinished(mParams, true);通知作业调度程序作业已完成,应该重新安排
那就是你的问题.使用false,而不是true.
false他说,"这项工作已经完成了".true说"我们遇到了问题,请重新安排这份工作,以便尽快完成".例如,标准说您必须具有Internet连接,但是您可能无法连接到服务器.在那种情况下,返回true,希望问题会稍微消失.
你也可以考虑调整回退规则,通过setBackoffCriteria()对这些情况下,你真的想返回true.
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |