Нет GPS onLocationИзмененные обратные вызовы, пока приложение в фоновом режиме? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть работающее приложение, которое обрабатывает и регистрирует координаты GPS с помощью обратного вызова onLocationChanged () LocationManager. Он работает нормально до тех пор, пока приложение не будет помещено в фоновый режим , например, перейдя в другое приложение с помощью кнопки «Недавние задачи» или кнопки «Домой». Обновления возобновляются, когда я снова выношу их на фронт. Интересно, что я вижу изменения статуса с GPS «Временно недоступен» на «GPS Доступен» при выводе на фронт. Я проверяю «isProviderEnabled ()» в фоновом режиме, но он всегда возвращает true .

Я не вижу упоминания об этом артефакте в LocationManager do c: возможно, это недокументированное, но предполагаемое поведение (???)

  • I попытался внедрить GPS-слушатель как сервис. Нет радости
  • Затем я попытался создать ASyncTask внутри службы (включая GPS-приемник при запуске службы). Все еще нет радости.

В обоих случаях одинаковое поведение: onLocationChanged не вызывается, когда приложение, которое запускает Sevice, переходит в фоновый режим.
У кого-нибудь есть предложение?

1 Ответ

0 голосов
/ 11 февраля 2020

Я нашел решение: мне нужно использовать Foreground Сервис. Это описано в https://androidwave.com/foreground-service-android.example С этим изменением GPS-фиксации будут получены даже после того, как основное действие остановлено (завершено).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...