Android GPS-приемник всегда работает - PullRequest
0 голосов
/ 13 октября 2010

Я реализовал GPS в своем приложении, в одном действии, как это:

 LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        LocationListener mlocListener = new MyLocationListener();
        mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

public class MyLocationListener implements LocationListener
    {
        public void onLocationChanged(Location location)
        {
            if (location != null) { //do something} 
        ...
        }

Это работает нормально. После дальнейшего развития приложения я понял, что мне нужно использовать GPS более чем в одном упражнении. Мне нужно иметь возможность проверить, активен ли gps и в каком месте он возвращается после 3-х действий.

Представьте себе такой сценарий: пользователь запускает приложение. В фоновом режиме GPS пытается установить спутниковое соединение, пока пользователь выбирает некоторые параметры. Когда я добираюсь до действия, которое требует информации о местоположении, я спрашиваю об этом.

Как мне этого добиться? Должно ли это быть запущено в другом потоке? Пожалуйста, посоветуй мне. Спасибо

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Я реализовал это как Android Сервис .

public class MyPositioningService extends Service {
  @Override
  public void onCreate() {
    // init LocationManager as you are doing
  }

  @Override
  public void onDestroy() {
    // LocationManager#removeUpdates
  }
}

Вы можете запустить его, когда пользователь запускает приложение:

Intent i = new Intent(context, MyPositioningService.class);     
context.startService(i);
0 голосов
/ 02 февраля 2011

Помещение в метод onPause () приведет к деактивации при выходе из Activity: mlocManager.removeUpdates (mlocListener);

Если у вас есть несколько Activity, для которых требуется прослушиватель gps, я бы выбрал класс помощника, вЯ положил менеджер местоположения и слушатель.Там у меня были бы открытые методы для их инициализации и запуска слушателя, для получения последнего известного местоположения и для деактивации обновлений.Не забудьте добавить поддержку для получения обновлений в вашей деятельности.Вот хороший пример:
Android найдет местоположение GPS один раз, покажет диалог загрузки

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