Прекратить выборку местоположения GPS, если приложение работает в фоновом режиме в ANDROID

#android #gps

#Android #gps

Вопрос:

В настоящее время я работаю над задачей, в которой мне нужно получить местоположения из GPS. Проблема, с которой я сталкиваюсь, заключается в том, что, как только я получаю местоположение и задача выполняется, после этого, если приложение работает в фоновом режиме, я не хочу получать какие-либо местоположения до тех пор, пока мое приложение не вернется на экран (передний план), чего в настоящее время не происходит. (пожалуйста, обратите внимание, что здесь я не говорю о переключении активности с одного на другое с помощью intent, поскольку мое приложение имеет только один экран и одно действие).

Я хотел бы знать, в какое место должен быть помещен код для обработки этой ситуации и как я могу этого добиться. Я попытался установить для экземпляра значение null и удалить обновление, но это оказалось неэффективным. Может быть, я помещаю его не в то место, я помещаю его снаружи onCreate() внутри действия, расширяющего класс.

Комментарии:

1. вызовите это «location_manager.removeUpdates (LocationListener);» в activity onPause().

2. @llango спасибо за ответ. я ценю ваш быстрый ответ, я тестирую это сейчас, и если сработает, обязательно сообщу вам.

Ответ №1:

Вызов requestForLocationUpdates() в onResume()

и removeUpdates() в onPause()

Как только я получу местоположение, задача будет выполнена

Если вам нужна только одна широта, исправлено: не используйте режим отслеживания, вместо этого используйте: requestSingleUpdate()

Комментарии:

1. Спасибо за ответ. я ценю ваш быстрый ответ, однако проблема с выборкой нескольких местоположений заключается в том, что у меня есть кнопка, которая включается только после получения GPS, поэтому, если приложения остаются на переднем плане и пользователь переместился, тогда должна быть указана новая позиция GPS, и, следовательно, я снова выбираю местоположения, но я тоже этого хочутолько на переднем плане. я тестирую это сейчас, и если сработает, обязательно сообщу вам.