IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Notification : mauvaises données


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut Notification : mauvaises données
    Bonjours à tous,

    J'essaie, au clic sur un élément d'une liste, de télécharger un fichier. Lorsque que ce fichier est téléchargé, une notification s'affiche et au clic dessus, l'image s'ouvre.

    Mon problème est que, après la première notification, les notifications suivantes ouvrent le même fichier. Par exemple, si je télécharge 1.jpg, 2.jpg, 3.jpg, quelque soit celui que j'ouvre, le getIntent().getExtras().get("file").toString() me retourne la valeur 1.jpg (alors que la notification est bien envoyée avec l'intent 2,3....).

    Pour info, j'aimerai une notification séparée par fichier (et pas une seule notification avec le dernier fichier).

    Voici une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Intent notificationIntent = new Intent(this, ImageViewer.class);
    notificationIntent.putExtra("file", file);
     
    Notification notification = new Notification(icon, ticker, System.currentTimeMillis());
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, content, contentIntent);
    mNotificationManager.notify(++NOTIFICATION_ID, notification);
    Si quelqu'un peut m'indiquer ce que je fais faux, c'est bien volontiers.

    Merci d'avance !!!

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Bonjour,
    Chaque notification a un identifiant. Si tu veux une notification par fichier, tu dois changer l'identifiant de ta notification, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mNotificationManager.notify(id, notification);
    id++;
    (ou alors utiliser l'id de la ligne de la listView sélectionnée)

    Dans ton cas j'ai l'impression que tu essayais d'incrémenter une constante, donc ça ne peut pas marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent notificationIntent = new Intent(this, ImageViewer.class);
    notificationIntent.putExtra("file", file);
    Ce code me parait juste. Si tu n'as pas la bonne valeur, ça doit surement venir de string file. As tu déjà affiché la valeur de file avant la publication de la notification ?

  3. #3
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    Alors NOTIFICATION_ID n'est pas une constante, elle est en majuscule parce qu'elle était constante avant que je me dise que je vais essayer d'incrémenter l'id. (peut-être j'aurai du préciser que ça c'est bon, plusieurs notifications sont présentes mais elles ouvrent toutes le même fichier)

    Pour ce qui est de la variable file, sa valeur est correcte je la teste en débug

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Cela vient peut être de ta classe ImageViewer. Peux tu nous montrer le code de cette activité ?

  5. #5
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    Alors pour info si je rajoute le flag update_current, le problème est "résolu" si je télécharge et j'ouvre une image après l'autre, par contre si j'en télécharge 4 et qu'en suite je les ouvre, elles affichent toutes la dernière (normal vu le flag).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    donc en gros ça ne corrige rien.
    ###################################################
    Dans mon imageViewer je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Bundle parametres = getIntent().getExtras();
    fileName = parametres.get("file").toString();
     
    // Ou j'ai aussi essayé ça :
    this.getIntent().getExtras().get("file")
    Et pour le débug, juste avant le notify de la notification, j'ai juste avant le PendingIntent.getActivity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    onClick.getExtras().get("file")
    	 (java.lang.String) xxx-1448087291_4.jpg
    et juste après la création de ImageViewer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    this.getIntent().getExtras().get("file")
    	 (java.lang.String) xxx1098145716_1.jpg
    (bien évidemment, xxx1098145716_1.jpg est la première image que j'ai chargée)

    En espérant que ça aide

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    En fait dans la méthode PendingIntent.getActivity. Tu dois mettre un requestCode différent pour chaque intent différent, d'après ce que j'ai compris

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. network RDC problème réception mauvaises données
    Par saturn1 dans le forum Unity
    Réponses: 5
    Dernier message: 30/05/2013, 18h01
  2. [Core] [GWT] Mauvaises données récupérées
    Par yukiko dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/09/2012, 17h57
  3. récupération des mauvaises données outllook
    Par bobby51 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 19/03/2009, 09h45
  4. [SQL] Modification des données, mauvaise requête ?
    Par Scurz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/08/2006, 21h22
  5. Réponses: 5
    Dernier message: 05/03/2006, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo