Я пытаюсь оптимизировать приложение для Android, которое должно достичь следующего:
Каждый час получать местоположение GPS и doSomeWork ()
В любое другое время, если устройство перемещается более чем на @MINIMUM_DISTANCE, увеличьте частоту обновления примерно до 5 минут, чтобы зарегистрировать движение, когда движение закончится, мы сможем вернуться к ежечасным обновлениям.
Теперь, если AlarmManager запускается каждый час, это удовлетворяет первое требование. Это отличный способ эффективно справиться с этой задачей. Однако я не уверен, как лучше всего выполнить второе требование.
Нужно ли мне:
Зарегистрировать AlarmManager, который срабатывает каждые 5 минут вместе с почасовым таймером? Зарегистрируйте LocationManager каждый раз и попытайтесь определить местоположение, сравните его с предыдущим местоположением, чтобы определить, произошло ли движение.
Зарегистрируйте LocationManager после моего ежечасного пробуждения с параметром минимального расстояния, равным моему требуемому минимальному перемещению.
Что-то другое?
Я вижу плюсы и минусы каждого подхода.
Использование параметра минимального расстояния LocationManager кажется мне более кратким решением, но меня беспокоит разрядка батареи. Будет ли это поддерживать работу GPS постоянно, независимо от того, получает ли мое приложение обновления? Я также не уверен, где лучше всего зарегистрировать приемник, я понимаю, что это плохая практика (не говоря уже о почти невозможной), чтобы служба работала 100% времени.
Да, я новичок в Android! Собираемся пойти и протестировать поведение LocationManager.
Заранее спасибо.