#android #location
#Android #Расположение
Вопрос:
Я запускаю действие в своем классе Locator.java который запускает службу locacionListener. Это действие записывает позиции в базу данных. Интересно, будут ли позиции продолжать запись в базу данных, или мне нужно будет вернуться к Locator.java чтобы продолжать запись. То же самое, когда я сворачиваю приложение.
У меня есть сомнения по поводу использования сервиса, но я хочу быть уверен, что он мне нужен.
Ответ №1:
Пока служба запущена и на устройстве доступно достаточное количество ресурсов, служба будет продолжать работать в фоновом режиме. Переключение действий, сворачивание или закрытие приложения этого не меняет. Вам решать, как официально остановить службу.
Однако бизнес-логика для сбора обновлений местоположения и сохранения их в базе данных должна быть реализована в сервисе, а не в activity. (Действие может использоваться для управления состоянием сервиса (остановка-запуск) и для отображения данных из базы данных, но основная часть вашего обновления местоположения / сохранения в логике базы данных должна запускаться из сервиса.
Вы можете проверить запущенные службы на вашем устройстве Android (Настройки — Приложения — Запущенные службы). Вы должны увидеть свою службу и количество времени, в течение которого она была запущена.
В зависимости от ваших требований, простой сервис не сократит его. Например, если вы также хотите получать обновления местоположения и сохранять их в базе данных, пока устройство находится в спящем режиме, вам нужно посмотреть на WakefullintentService
Комментарии:
1. Таким образом, эффективно, когда я завершаю работу с приложением, поток, записывающий данные в базу данных, перестает сохранять позиции. Насколько я знаю, поток завершится, и, поскольку для работы этого потока требуется событие onLocationChanged, позиции не будут обновляться, пока я не вернусь к этому действию Location. Это правильно? Спасибо ddewaele!