J'ai des problèmes concernant un LocationListener
dans mon service appelé myService
.Pourquoi mon emplacement LocationListener devient-il nul?
Voici mon code:
///onStart method ..
onStart() {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE)
.
.
provider = locationManager.getBestProvider(criteria, true);
locationListener = (LocationListener) new MyLocationListener();
locationManager.requestLocationUpdates(provider, 0, 0, locationListener);
}
Dans mon activité il y a un bouton qui devrait arrêter le service. Sur le clic du bouton que je fais:
stopService(new Intent(getApplicationContext(), myService.class)
Dans le fichier myService.java
je:
////onDestroy method....
onDestroy() {
locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.removeUpdates(locationListener); //Getting **exception here ....
}
je reçois l'exception suivante:
java.lang.IllegalArgumentException: listener==null at android.location.LocationManager.removeUpdates(LocationManager.java:799) at
<.package_name>myService.onDestroy(myService.java:407)
Je ne sais pas pourquoi l'écouteur retourne null sans raison. S'il vous plaît pouvez-vous me dire où je me trompe!
Est-ce que vous le réglez manuellement à nulle part ailleurs dans le code? – JRL
Je suis sûr que je ne le mets pas à zéro. Je pense que le service est redémarré, mais je ne comprends pas quelle partie du code il est exécuté quand le service redémarre. – sheik