我正在使用JobScheduler执行任务。在具有API 22的特定设备中,我面临一个问题,即有时在onStart()之后立即调用作业服务的onDestroy(),有时在完成任务之前调用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();
}
我从JobService的onStart()和onStop()返回true,并在onStart()中创建一个线程来执行任务。