Поскольку это своего рода задача планирования, в первую очередь выбирается планировщик: если вы хотите, чтобы обновления отправлялись с точным интервалом (ограниченным временем), вы можете выбрать AlarmManager
, если вы можете пойти на компромисс по времени и хотитеОптимизировать в зависимости от батареи, доступности сети, времени ожидания устройства и т. д. Вы можете выбрать JobScheduler
API.
Теперь перейдите к отправке обновлений. Вы можете запустить фоновую службу с помощью любого из указанных API-интерфейсов планировщика и отправитьобновления для бэкенда изнутри сервиса. НО ,
Обратите внимание, что при запуске Android Oreo существуют ограничения для запуска фоновой службы, когда приложение находится в фоновом режиме, вам нужно будет отображать постоянное уведомление в панели уведомлений, показываяинформация о том же.
В любом случае, JobScheduler
будет лучшим выбором, поскольку он также будет обслуживать перезагрузки устройства.Также вы можете повторить задание, если оно не удалось в середине, путем небольших изменений в типах возврата методов API.
ОБНОВЛЕНИЕ: Если ваша задача - обновить информацию о местоположении только в течение жизненного цикла приложений, вы также можете оформить заказ Handlers
и TimerTasks
.