2010-01-06 13 views
7

Après le lancement de l'écouteur par le code suivant fonctionne très bien.android comment arrêter gps

LocationManager locationManager =(LocationManager) getSystemService(Context.LOCATION_SERVICE); 
locationManager.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, WLConstants.DELAY_HOUR, gpsl 
          .getMinDistance(), gpsl); 

Après un certain temps j'arrêter l'auditeur par le code suivant

locationManager.removeUpdates(this); 

mais le problème est-il toujours à la recherche de mon GPS toute solution ??? comment arrêter le GPS?

+2

Rappelez-vous Acceptez les réponses aux questions précédentes que vous avez posées - vous êtes seulement à 45% d'acceptation jusqu'à présent. De cette façon, plus de gens seront susceptibles de continuer à répondre aux questions. :) –

Répondre

19

Vous devez passer le même objet la mise en œuvre LocationListener que vous avez demandé des mises à jour de localisation pour la méthode de comptabilisation locationManager.removeUpdates().

Donc, à moins que this et gpsl sont une seule et même chose, vous devez appeler:

locationManager.removeUpdates(gpsl); 
0

Mon auditeur implemention

public class GPSLocationListener extends Activity implements LocationListener { 

    @Override 
     public void onLocationChanged(Location location) { 
//code here 
    } 

    } 

lorsque je tente de supprimer écouteur à l'aide d'erreur de compilation de code follwing.

locationManager.removeGpsStatusListener(GPSLocationListener) 
+2

Vous devez utiliser le nom * instance * plutôt que le nom * class * lors de la suppression de l'écouteur. Dans votre question initiale, votre écouteur est une variable appelée 'gpsl'. Vraisemblablement, c'est une variable membre dans votre classe. Sinon, faites-en une variable membre plutôt que locale à cette méthode. Ensuite, vous pouvez passer 'gpsl' quand vous appelez' removeGpsStatusListener'. –

+1

Vous ne pouvez pas utiliser removeGpsStatusListener avec un LocationListener! Un LocationListener est différent d'un GpsStatus.Listener. – Erwan

0

Vous devez passer l'instance à votre GPSLocationListener aller la méthode removeGpsStatusListener et non le nom de classe.

1

Vous pouvez passer le paramètre comme celui-ci GPSLocationListener.this

locationManager.removeGpsStatusListener(GPSLocationListener.this); 

la compilation ne sera pas faux

3

Si vous utilisez des cartes, vous devez faire:

locationManager.removeUpdates(locationListener); 

mMap.setMylocationEnabled(false); 
+0

.setMyLocationEnabled (false) est en fait ce qui manquait dans mon code. Merci beaucoup! – marson