Aller au contenu

Problème de notifications


911

Recommended Posts

Bonsoir. :D

Dans le cadre de mes études, chaque élève doit développer une application de son choix en JAVA ou une application Android.

Pour ma part, j'ai choisi de développer une application Android qui utilisera la google map API V1 (ça fait déjà plusieurs mois que je bosse dessus et j'arrive bientôt au terme de l'application donc je ne pense pas faire la migration vers la V2).

Objectif de mon application : recenser l'ensemble des organismes éducatifs dans le monde. 8-)

De ce fait, je possède une base de données MySQL qui me permet de mémoriser l'intitulé de l'organisme, sa latitude ainsi que sa longitude.

Mon application récupère l'ensemble de ses informations au format JSON et affiche des marqueurs sur ma map. Mais, je voudrais encore améliorer mon application et y rajouter une pointe de complexité. Ainsi, j'ai entrepris d'alerter chaque utilisateur, au travers de notifications, lorsqu'il se trouve dans un rayon de 3km (AddProximityAlert) d'un organisme éducatif. J'ai donc créé un service possédant un thread qui se lance sur OnLocationchanged. A savoir que j'ai quand même besoin d'accéder à ma base de données via mon thread dans le but de récupérer d'éventuels nouveaux organismes éducatifs ajoutés entre-temps par un autre utilisateur. (Et oui, un utilisateur quelconque peut également ajouter un organisme éducatif sur la map qui sera ensuite disponible pour l'ensemble de la communauté).

Mon problème : l'application envoie à de multiples reprises la même notification à un utilisateur et ce, dans un délai très court (entre 10 et 30 secondes plus tard). Je souhaiterai envoyer une notification correspondant à un organisme éducatif seulement une fois par utilisateur. Or je n'y parviens, j'ai tenté de sauvegarder l'ensemble des ID associés aux centres éducatifs des notifications déjà envoyés. Malgré cela, je ne parviens pas à stopper l'envoi multiple d'une même notification car j'ai l'impression que mon service se redémarre et donc que mes ID, précédemment enregistrés, sont effacés.

C'est un projet que je dois rendre le 15 janvier donc j'ai un peu (beaucoup) la pression.

Quelqu'un aurait-il une solution? N'hésitez pas à me demander pour d'éventuelles précisions ou éclaircissements.

Merci par avance et bonne année :D

Lien vers le commentaire
Partager sur d’autres sites

En gros, à chaque changement de location, le service fait son test, te trouve près d'un POI et remonte la notification en créant un nouveau thread ?

Ou stock tu les ID des POI ? si c'est dans une variable de tes threads, c'est normal que ça ne fonctionne pas. Soit tu initialise ton thread avec une variable de ta classe histoire de la garder au chaud, soit tu utilise une asynctask peut être plus simple d'utilisation ?

Lien vers le commentaire
Partager sur d’autres sites

En gros, à chaque changement de location, le service fait son test, te trouve près d'un POI et remonte la notification en créant un nouveau thread ?

Ou stock tu les ID des POI ? si c'est dans une variable de tes threads, c'est normal que ça ne fonctionne pas. Soit tu initialise ton thread avec une variable de ta classe histoire de la garder au chaud, soit tu utilise une asynctask peut être plus simple d'utilisation ?

Bonsoir, et merci de l'intérêt porté à mon problème.

A chaque changement de location, le service fait son test et si il me trouve près d'un POI, il remonte la notification via un nouveau thread.

Les ID des POI sont stockés uniquement sur ma base de données.

Concernant l'utilisation d'une asynctask, je ne vois pas bien comment l'utiliser dans ce cas. Pourrais-tu m'apporter quelques précisions?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...