Раньше я запускал LocationService
с помощью следующей команды
startService(new Intent(MainActivity.this, LocationUpdateService.class));
, но поскольку Oreo
не поддерживает его, я перешел на JobSchedular
, и теперь я делаю это.
final int hourly = (int)TimeUnit.HOURS.toSeconds(1);
final int toleranceInterval = (int) TimeUnit.MINUTES.toSeconds(15);
Job job = dispatcher.newJobBuilder()
.setLifetime(Lifetime.FOREVER)
.setService(LocationUpdateService.class)
.setTag("LocationJob")
.setRecurring(true)
.setReplaceCurrent(true)
.setTrigger(Trigger.executionWindow(hourly,toleranceInterval))
.build();
return job;
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this));
Job job=createJob(dispatcher);
dispatcher.schedule(job);
Первоначально моя служба определения местоположения использовалась для отправки мне lat/lng
пользователя через каждые 1 час.Теперь с FirebaseJobDispatcher
я запланировал эту работу, и она запускается Location service
через каждые 1 час.Так в чем же разница?
В обоих случаях моя служба определения местоположения выполняет сетевую работу и отправляет пользователя lat/lng
через каждые 60 минут.Я хочу знать, какой прирост производительности мы получаем при использовании JobSchedular