com.hero Posted June 25, 2010 Share Posted June 25, 2010 Salut à tous! J'ai une petite coquille dans un bout de code. Je gère des points d'intérêt suivant la distance de l'utilisateur, si le point est à moins de 500m, j'affiche une alerteDialog. Ce morceau de code est placé dans le onLocationChanged du LocationListener. Afin de ne pas avoir d'alerte à répétition, j'ai un attribut isWarned qui passe à true lors de l'affichage, si on est à une distance de plus de 500m, isWarned passe à false de manière à se réaffiché par la suite. point est un ArrayList, classé par distance par ordre croissant, je prend le plus proche avec point.get(0) if(distance < 500){ if(!point.get(0).isWarned()){ context.getPop().popPoint(point.get(0)); point.get(0).setWarned(true); } }else{ for(int l = 0; l < point.size(); l++){ if(!point.get(l).isWarned()) point.get(l).setWarned(false); } } Mon soucis est que malgré tout, au bout de quelques minutes, j'ai de nouveau une alerte sur ce point qui s'affiche, alors que je ne sors pas des 500m. J'ai pensé que cela pouvait être du à une perte du signal, puis lors du nouveau fix du GPS, le temps d'affiner, que je sois détecté à plus de 500m. Qu'en pensez-vous? Des idées? Merci à tous et bonne journée :) Link to comment Share on other sites More sharing options...
Chronogps Posted June 25, 2010 Share Posted June 25, 2010 J'aurais tendance a dire la même chose. Il faudrait voir le code dans isWarned() Attention au changement d'orientation de l'écran qui fait un reset d'application (et donc du GPS) si tu ne l'as pas inhibé. Link to comment Share on other sites More sharing options...
com.hero Posted June 25, 2010 Author Share Posted June 25, 2010 J'ai forcé le layout en vertical et je ne l'ai pas penché, mais sait-on jamais, le GPS reset-il quand même? Pour le isWarned, c'est un simple getter/setter public boolean isWarned() { return isWarned; } public void setWarned(boolean isWarned) { this.isWarned = isWarned; } Link to comment Share on other sites More sharing options...
popolbx Posted June 25, 2010 Share Posted June 25, 2010 - la veille - tu utilise un mode mixte pour le gps et s'il perd le signal il switch sur le reseau mobile. et une combinaison des deux : si je sors google maps de veille il me positionne à 3km avant de tres vite revenir où il faut. Link to comment Share on other sites More sharing options...
com.hero Posted June 25, 2010 Author Share Posted June 25, 2010 As-tu donc une idée pour être sur de n'avoir qu'une seule notification tant qu'on est dans les 500m? Car étant dans le onLocationChanged, la notification se fait potentiellement toutes les secondes à peu près Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.