Когда остановите GPS в Android-приложении - PullRequest
0 голосов
/ 26 марта 2012


Я не знаю, когда остановить GPS.
Я использую locationManager для управления GPS.
Проблема в том, что я хочу, чтобы тот же gps работал не только в той активности, в которой я его запустил, но и во время открытия меню и опций.
Я создаю специальный статический класс, который позволяет мне работать с GPS от каждого из моих действий. Я останавливаю gps с помощью locationManager.removeUpdates в функции onPause в основном действии, потому что я никогда не знаю, будет ли закрыто действие, когда я открываю меню и другие действия или система минимизирует его.
Решение состоит в том, чтобы запускать и останавливать GPS в onStart и onStop (или onPause) в каждом из действий. Есть ли более простой способ решить проблему и остановить gps, когда основное действие действительно закрыто навсегда и никогда больше не будет использоваться?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

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

Редактировать:

ЭтоТакже возможно остановить ваш сервис, если вы закроете свое приложение.Вы можете реализовать isAppActive Flag в своем базовом классе MyApplication (расширенный от Application).Вы должны установить setAppActive = false в onPause () и setAppActive = true в onStart ()!В противном случае это не сработало, потому что onStart () вашего следующего действия началось до onStop () старого.

0 голосов
/ 26 марта 2012

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

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