Bonjour,
Je débute dans le développement android et je suis en train de programmer une petite application pour me familiariser au système.
En gros, l'application permet à plusieurs utilisateurs inscrits de synchroniser des événements chaque jour.
La communication se fait via une base de données mysql sur internet, et en gros, j'ai une activité qui créé un service, qui lui même crée une Asynctask qui va aller périodiquement consulter la base de données.
Ca, ca fonctionne.
Par contre, je souhaite mettre en place un système de notification pour m'indiquer que le statut de l'événement a changé ( quelqu'un vient, ou a changé son état ).
L'algo est donc le suivant : ma tache va lire la base de données, et si elle constate que les données ont changé, elle appelle une callback de mon service , et cette callback fait 2 choses : 1erement, elle envoie un message à son activity pour prévenir de rafraichir la vue , et 2emement, elle génère une notification dans la barre de notification.
Le but est de notifier lorsque l'application est en arrière plan.
Voici comment j'ai créé ma notification ( code de android developer )
La notification s'affiche bien, mon activité est rafraichi si elle est en premier plan. Par contre, si mon activité n'est pas en premier plan, si je clique sur ma notification pour appeler mon activité, l'application arrive en premier sur mon activité, puis elle plante sans rien afficher. Je ne comprends pas trop pourquoi, à part le fait que vu que j'étais en arrière plan, elle est probablement détruite, alors comment la recréer ?
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 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( this ); mBuilder.setSmallIcon(R.drawable.ic_launcher); mBuilder.setContentTitle( "ksb"); mBuilder.setContentText("Le planning a changé"); Intent resultIntent = new Intent(this , infoactivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this ); stackBuilder.addParentStack( infoactivity.class ); stackBuilder.addNextIntent( resultIntent ); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent( 0 , PendingIntent.FLAG_UPDATE_CURRENT ); mBuilder.setContentIntent( resultPendingIntent); NotificationManager mNot = (NotificationManager)getSystemService( Context.NOTIFICATION_SERVICE); mNot.notify(0 , mBuilder.build());
Merci d'avance :jap:
Partager