Приложение поддерживает пинг GPS - PullRequest
0 голосов
/ 16 августа 2010

У меня есть активность mapView, в которой зарегистрировано LocationListener для проверки нового местоположения каждые две секунды. Когда я нажимаю кнопку «Назад», чтобы вернуться к главному экрану приложения, GPS продолжает проверять местоположение каждые две секунды. Не останавливается ли слушатель при остановке Activity? Если нет, как я могу справиться с этим? В настоящее время я не переопределил onStop().

private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        updateWithNewLocation(location);
    }

    public void onProviderDisabled(String provider) {
        //TODO do something to handle when the provider is disabled
    }

    public void onProviderEnabled(String provider) { }
    public void onStatusChanged(String provider, int status, Bundle extras) { }
};

1 Ответ

3 голосов
/ 16 августа 2010

Вам необходимо переопределить метод onPause вашего Activity, потому что он обязательно будет вызван. В методе onPause вы должны отменить регистрацию LocationListener.

Вы делаете это через

locationManager.removeUpdates(yourListener);

Если у вас mapView, у меня иногда возникали проблемы с locationOverlay, когда слушатель был зарегистрирован и использовал GPS, даже если вид карты был в фоновом режиме.

...