2010-10-22 5 views
1

S'il n'y a pas de GPS FIX (parce que la personne est dans un bâtiment en métal ou quelque chose) .... reste-t-il juste dans le Looper .. ?? OU continue-t-il de chercher un correctif via requestLocationUpdates .. ??Que fait le code suivant s'il n'y a pas de solution GPS?

Si j'ai un bon GPS FIX .... mon code fonctionne bien ... et dans onLocationChanged() ... Je mets à jour l'emplacement actuel à la base de données.

Aussi ... quand est onLocationChanged() appelé .. ?? Est-il seulement appelé quand il y a un GPS FIX .. ?? Je me demandais ..

public void run() 
    { 
     Looper.prepare(); 

     LocationManager lm = (LocationManager)   getSystemService(Context.LOCATION_SERVICE); 
     LocationListener ll = new mylocationlistener(); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll); 

     Looper.loop(); 
    } 

Répondre

0

J'ai découvert (après beaucoup de tests) que le GPS échoue .... il va à travers une erreur et planter mon service. Au lieu de tuer l'application ... Je viens de redémarrer le service et l'essayer à nouveau.

0

Umm, est-ce dans le code de production? Ou êtes-vous simplement curieux. Ce code android n'est absolument pas acceptable. Jetez un oeil à cela pour une idée sur la façon de mettre en œuvre correctement un LocationListener

http://hejp.co.uk/android/android-gps-example/

when is onLocationChanged() called

OnLocationChanged est appelé lorsque les paramètres que vous passez dans la méthode requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent) sont remplies. C'est-à-dire, chaque fois que minTime passe ou que le périphérique déplace minDistance. (Notez que ce ne sont que des indices, pas des valeurs exactes)

+0

Arrière et informatif. Bonne réponse! – AndrewKS

+1

Ce n'est pas un code de production. Mais quel est le problème avec mon code .. ?? Je cours ceci en tant que service. Il se plaignait que je n'avais pas de Looper en place ... alors c'est ce que j'ai fait. Mon code semble fonctionner correctement. Je me demandais juste ce qui est arrivé à mon code quand il n'y a pas de solution GPS. – Biggs

+0

Tout d'abord, il semble que ce code est dans une sorte de thread. Je suppose que c'est parce que c'est dans une méthode 'run'. 'Requestlocationupdates' est asynchrone, il n'a donc pas besoin d'être dans un thread. C'est probablement ce que votre erreur sur looper est. Votre code pourrait fonctionner, mais vous pouvez obtenir beaucoup de code très mal écrit pour travailler. Obtenir votre code pour compiler et exécuter ne devrait pas être une mesure de succès. – Falmarri