Bonjour,
J'ai un petit soucis, j'ai créer un service avec un Location Manager qui envoie les coordonées GPS toute les 5 minutes et un listener sur le GPS. Le timer du service sert juste à garder le service en vie et savoir si listener est !=null, ce qui est le cas.

Mais au bout d'un moment qui est variable, il y a uniquement la fonction run() du service qui tourne. Mon listener ne fonctionne plus et n'est pourtant pas égal à null ....

voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
public int onStartCommand() { 
 
onLocationChange=new LocationListener() //private onLocationChange
	 {
		public void onLocationChanged(Location location) {
				// TODO Auto-generated method stub
				envoieCoordonées();
                 }
 
                 public void onProviderDisabled(String provider) {
				// TODO Auto-generated method stub
				Log.d(TAG,"GPS STATUS OFF");
				notificationGPSOFF("Le GPS est inactif");
		}
 
 
		public void onProviderEnabled(String provider) {
				// TODO Auto-generated method stub
				Log.d(TAG,"GPS STATUS ON");
				notificationGPSON("GPS est activé");
		}
 
		public void onStatusChanged(String provider, int status, Bundle extras) {
					// TODO Auto-generated method stub
					Log.d(TAG,"GPS STATUS CHANGE");
				}
};
//private static LocationManager lm 
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
				 lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, DELAI_GPS,0, onLocationChange);
				lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, DELAI_GPS,0,onLocationChange);
timer.scheduleAtFixedRate(new TimerTask() { 
			        public void run() {
			        	Log.d(TAG,"onLocationChange : " + onLocationChange!=null);
 
			        } 
			    }, 0, 5*60000);//5 minutes 
 
			    return START_NOT_STICKY; 
			}
Voila pour le code. Et du coup, on bout d'un moment je n'est plus les logs de la fonction envoieCoordonées() mais juste le log de la fonction run(). De plus toute les opérations pouvant générer une exception sont entouré de try/catch avec log donc si le problème venait de la je le verrai mais ce n'est pas le cas car aucun log de ce type ne s'affiche.

Merci de votre aide