В Android Oreo мы не можем использовать некоторые из приемников неявной широковещательной передачи (состояние сети и т. д.). Вместо этого мы можем использовать планировщик заданий или диспетчер. Но в I / O 2018 Google представил новую библиотеку Workmanager.
Но здесь возникает вопрос, как я могу обрабатывать системные события (прием вызова, изменение состояния сети, включение / выключение GPS и т. д.) В диспетчере работ? или Как я могу запланировать свою работу на определенное время (без учета времени)?
Если у кого-то есть идеи по этому поводу, дайте мне знать. Заранее спасибо.
Вы можете архивировать, просто используя метод setInterval в классе LocationService.
Следуйте инструкциям по созданию слушателя с помощью FusedLocaation, который дает лучший результат по логике местоположения. https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderClient
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setInterval(5000);
// in milliseconds in you case change into 3600000
locationRequest.setFastestInterval(1000);
locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
Затем запустите fusedLocation с обратным вызовом
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(locationActivity);
mFusedLocationClient.requestLocationUpdates(locationRequest, new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
}
@Override
public void onLocationAvailability(LocationAvailability locationAvailability) {
super.onLocationAvailability(locationAvailability);
}
},null);
Спасибо