سؤال

انا املك 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) { }
};
هل كانت مفيدة؟

المحلول

تحتاج إلى تجاوز onPause طريقة الخاص بك Activity لأنه من المؤكد أن يسمى. في ال onPause الطريقة التي يجب عليك إلغاء تسجيلها LocationListener.

أنت تفعل هذا من خلال

locationManager.removeUpdates(yourListener);

اذا كان لديك mapView في بعض الأحيان كان لدي مشاكل مع locationOverlay الاحتفاظ بمستمع مسجل واستخدام GPS حتى لو كان MapView في الخلفية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top