Я разрабатываю приложение, которое проверяет погоду на основе текущего местоположения каждые 3 часа. Я получаю местоположение с помощью FusedLocationProviderApi и использую pendingIntent для BroadCastReceiver, которые запускают IntentService.Инициировать периодические обновления местоположения с использованием FusedLocationProviderApi или вместо этого использовать AlarmManager
В FusedLocationProviderApi вы можете указать период интервала при создании LocationRequest. Поэтому, если я укажу интервал на 3 часа, а самый быстрый интервал - на 3 часа (я не хочу получать обновления до этого), что произойдет, если местоположение недоступно, когда пришло время сделать обновление местоположения?
Смогу ли я получить намерение обновления местоположения в назначенное время? Я хотел бы использовать последнее известное местоположение, если оно недоступно, но я должен быть уверен, что я все еще получаю PendingIntent в запланированное время.
Или лучше использовать диспетчер аварийных сигналов для обработки периодической работы и вместо этого запросить обновление местоположения из IntentService?
Благодаря
Благодарю. Я думал, что использование PendingIntent для обновления местоположения в WakefulBroadcastReceiver, которое запускается в IntentService, которое запрашивает погоду для этого местоположения, позаботится о случае, если устройство находится в спящем режиме (не заставляя его бодрствовать во время ожидания). – stefanb
У вас есть опыт в отношении того, насколько надежна периодическая отчетность из FusedLocationProviderApi. Насколько он надежный, как AlarmManager? – stefanb
Пожалуйста, проверьте эту библиотеку [cwac-locpoll] (https://github.com/alexbirkett/cwac-locpoll). Это именно то, что вам нужно, но использует LocationManager. Вы можете реализовать платный провайдер местоположения вместо старого. – Blackkara