В настоящее время я использую FusedLocationProviderClient
для запроса обновлений местоположения в методе MainActivity
в onCreate
. После создания активности BroadcastReceiver
регистрируется как прослушиватель обновлений местоположения. Но обновления местоположения по-прежнему продолжаются ночью, так как я не удаляю обновления местоположения из приемника, но мне не нужны обновления ночью, так как они обычно дома. Я хочу удалить обновления из приемника в 22:00 и возобновить получение обновлений местоположения в 6:00 каждый день. Я думал, что AlarmManager
будет достаточно, но я не мог найти правильный способ справиться с этой проблемой. Я мог бы просто игнорировать обновления, поступающие ночью в приемник, но я не думаю, что это было бы эффективным решением для батареи.
Сводка
- Запрашивать обновления местоположения, когда пользователь открывает приложение в первый раз, и обрабатывать обновления в фоновом режиме с помощью BroadcastReceiver (
requestLocationUpdates(...)
) - Удаляйте обновления местоположения из BroadcastReceiver каждый день в 22:00, поскольку приложение не нуждается в обновлениях местоположения ночью (
removeLocationUpdates(...)
) - Запрашивать обновления местоположения в 6:00 каждый день, поскольку приложению требуются обновления местоположения в течение дня в фоновом режиме с помощью BroadcastReceiver.