Android: Как отключить GPS, пытаясь найти блокировку? - PullRequest
1 голос
/ 25 февраля 2012

Вот фрагменты моего кода:

private class NoGpsLock implements Runnable {
    public void run() {
      if (gps == null) {
        Toast toast = Toast.makeText(getApplicationContext(), "Unable to find GPS lock", Toast.LENGTH_LONG);
        toast.show();
        if (locManager != null) {
          locManager.removeUpdates(locListener);
        }
      }
    }
  }

Вызывается

try {
  locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DIST, locListener);
} catch (Exception ex) {
}
Handler gpsHandler = new Handler();
gpsHandler.postDelayed(new NoGpsLock(), 15000); //15seconds

Насколько я понимаю, removeUpdates() должен прекратить получать обновления GPS.Я пробовал это на эмуляторе и на 2 устройствах;в эмуляторе он не дает приложению получать дальнейшие изменения местоположения.Однако на реальных устройствах значок «Получение данных о местоположении от GPS» продолжает появляться и разряжает аккумулятор (что, как я полагаю, указывает на то, что приложение / телефон продолжает искать местоположение и не может, поскольку я в помещении),Как мне остановить GPS от попыток найти местоположение?

РЕДАКТИРОВАТЬ: я хочу, чтобы мое приложение прекратило попытки найти местоположение через некоторое время, а затем, возможно, перезапустите GPS позже.

1 Ответ

2 голосов
/ 25 февраля 2012

removeUpdates (locationListener) равно предполагается , чтобы остановить этот мигающий значок GPS.Если этого не происходит, лучшее предложение, которое я могу предложить, - это, может быть, есть другие экземпляры слушателя, все еще зарегистрированные в вашем locationManager?Забытый цикл for мог присоединить другие экземпляры слушателя.Как разработчик перебора, я бы делал removeUpdates () несколько раз, чтобы посмотреть, как это повлияет.

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