我注意到我的計劃JobScheduler過於頻繁地執行作業方式。我已經設定每天執行一次,它需要閒置,開啓WLAN和收費,但是當這些條件滿足時,工作每10分鐘執行一次,甚至更頻繁。當使用setPeriodic()時,Android JobScheduler運行方式太頻繁
我的代碼:
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");
作業執行後臺線程從互聯網上下載數據,數據下載完成後,我打電話
mService.jobFinished(mParams, true);
通知作業調度的工作已經完成,它應該重新安排它。即使將期限設置爲一天,工作如何頻繁執行?我的android 6.0.1設備幾乎從不進入打盹模式,因爲作業經常運行。
哦,這就解釋了我遇到的問題。好像我誤解了文檔。謝謝! – qwertz