Bonjour à tous, je suis en train de me faire une petite application pour apprendre un peu les ficelles de la programmation android et je bloque un peu sur un problème:
J'ai une activité qu'on va appeler News qui est lancée à partir de l'activité principale.
Parallèlement, les news étant envoyées par Gcm, l'activité News est également lancée lorsque l'utilisateur clique sur la notification.
Le problème qui se présente est que si l'utilisateur se trouve dans l'activité News et qu'une notification arrive et qu'il clique sur celle-ci, cela à pour effet de lancer un 2ème instance de l'activité News
Ce que je voudrais faire:
J'ai un Brodcast Receiver (dont je vous met le code ci-dessous) qui se déclenche à l'arrivée de la notification et qui enregistre le contenu de la notification dans une base de donnée, j'aimerais que celui-ci puisse détecter si l'activité News est active, et si c'est le cas, forcer le rafraîchissement de l'activité et l'effacement de la notification.
PS: Je m'excuse d'avance si ma question est stupide mais je débute en programmation android et certains concepts m'échappent encore.
Merci d'avance
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
42 public class NotificationReceiver extends BroadcastReceiver{ private static final String TAG = "NotificationReceiver"; @Override public void onReceive(Context context, Intent intent) { String data = null; // récupération et formatage de la date courante Calendar calObj = Calendar.getInstance(); SimpleDateFormat date = new SimpleDateFormat("dd/MM/yyyy"); String strDate = date.format(calObj.getTime()); // Déclaration du hndler de la base de donnée dbNewsDo dbNewsHandler; // Création d'un objet dbNews dbNews maNews = new dbNews(); // récupération du handler de la base et ouverture de la base dbNewsHandler = new dbNewsDo(context); dbNewsHandler.open(); try { JSONObject jObj = new JSONObject(intent.getExtras().getString("data")); data = jObj.getString("alert"); } catch (JSONException e) { e.printStackTrace(); } // On insère la date maNews.setDate(strDate); // on insère le texte maNews.setMessage(data); // on enregistre dans la base de donnée dbNewsHandler.insertNews(maNews); // On referme la base de donnée dbNewsHandler.close(); } }
Partager