Android jobScheduler не остановится на jobFinished (params, false)
Я пытаюсь создать работу сервиса. Вот как выглядит onStartJob ().
@Override
public boolean onStartJob(JobParameters params) {
Log.d(TAG, "onStartJob");
Log.d(TAG, "Params= " + params.getJobId());
param = params;
jobFinished(params, false);
//startAsync();
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
Log.d(TAG, "onStopJob");
return false;
}
Вот код, который должен начать работу.
public void startJobScheduler(){
Log.d(TAG, "inside startJobScheduler");
Activity activity = this.cordova.getActivity();
Context context = activity.getApplicationContext();
mJobScheduler = (JobScheduler)context.getSystemService(Context.JOB_SCHEDULER_SERVICE );
JobInfo.Builder job = new JobInfo.Builder(111, new ComponentName(context, JobSchedulerService.class));
job.setPeriodic(60000);
Log.d(TAG, "before mJobScheduler.schedule(job.build())");
if( mJobScheduler.schedule( job.build() ) <= 0 ) {
Log.d(TAG, "job schedule failed");
}
Log.d(TAG, "333");
}
Я не могу заставить это остановиться. Это просто продолжает стрелять каждые 1-5 минут. Я поместил jobFinished (params, false) в onStartJob () и прокомментировал задачу, чтобы попытаться убить ее сразу после ее запуска, но она просто продолжает работать. Кажется, что jobFinished () что-то запускает, так как вызывается onDestroy (), и моя служба уничтожается, но затем приходит другая работа с тем же идентификатором и запускает все резервные копии.
У меня есть BIND_JOB_SERVICE в манифесте, как показывает каждый пример.
Любые идеи о том, почему jobFinished (params, false) не убивает setPeriodic (60000)?