Я использую приведенный ниже код для планирования работы службы.
JobScheduler jobScheduler = (JobScheduler) mContext.getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
if (jobScheduler != null) {
try {
jobScheduler.schedule(AppJobService.createJobInfo(mContext.getApplicationContext(), account));
} catch (IllegalArgumentException e) {
CrashLogger.logException(e);
}
}
public static JobInfo createJobInfo(@NonNull Context context, Account account) {
Gson g = new Gson();
String json = g.toJson(account);
PersistableBundle bundle = new PersistableBundle();
bundle.putString("Account", json);
JobInfo.Builder builder = new JobInfo.Builder(3, new ComponentName(context, AppJobService.class))
.setExtras(bundle)
.setRequiredNetworkType(NETWORK_TYPE_NONE)
.setRequiresDeviceIdle(false).setPersisted(false);
return builder.build();
}
Но получаю ниже исключения
2018-12-03 17: 51: 22.360 5032-5557 /?W / System.err: java.lang.IllegalArgumentException: вы пытаетесь создать работу без ограничений, это не разрешено.
Но когда я меняю setRequiredNetworkType(NETWORK_TYPE_NONE)
на setRequiredNetworkType(NETWORK_TYPE_ANY)
, этоработает нормально. Но я хочу, чтобы моя служба заданий работала, даже если нет сетевого подключения. Почему я получаю исключение с NETWORK_TYPE_NONE?