Я использую JobScheduler для выполнения задачи. В конкретном устройстве с API 22 я сталкиваюсь с проблемой, что иногда onDestroy () службы заданий вызывается сразу после onStart (), а иногда вызывается onStop () перед завершением задачи, покав других устройствах он работает нормально.
Я использую приведенный ниже код для создания службы заданий.
JobScheduler jobScheduler = (JobScheduler) mContext.getApplicationContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
if (jobScheduler != null) {
try {
jobScheduler.schedule(ConeAppJobService.createJobInfo(mContext.getApplicationContext(), account));
} catch (IllegalArgumentException e) {
CrashLogger.logException(e);
}
}
public static JobInfo createJobInfo(@NonNull Context context, Account account) {
JobInfo.Builder builder = new JobInfo.Builder(JobServiceConstant.JobID.CO_JOB_ID, new ComponentName(context, ConeAppJobService.class))
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE)
.setOverrideDeadline(0);
return builder.build();
}
Я возвращаю true из onStart () и onStop () JobService.И создаюпоток внутри onStart () для выполнения задачи.