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 :

Lancer une application au clic sur une notification


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Points : 48
    Points
    48
    Par défaut Lancer une application au clic sur une notification
    Bonjour,

    Je souhaite gérer le cas où l'utilisateur, lors d'un calcul long dans mon application revient au bureau. Dans ce cas, j'ai un receiver qui me permet de lancer une notification à la réception de l'information (qui vient du réseau). Depuis ce Receiver, je voudrais relancer l'activité sur laquelle se trouvait l'utilisateur au moment de son retour au bureau. Je procède donc de la manière suivante :

    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
     
    if (!MonActivity.isInForeground) {
       Resources resources = context.getResources();
       String identifier = intent
             .getStringExtra(MyActivity.PARAM_EXCHANGE_IDENTIFIER);
       // Do the graphical update or record data
        if (identifier.equals(MyActivity.EXCHANGE)) {
        SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(context);
        Resources res = context.getResources();
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.ic_my_icon,
              res.getText(R.string.my_text), System.currentTimeMillis());
        notification.number++;
        PendingIntent pending = PendingIntent.getActivity(context, 0, new Intent(context, MyActivity.class), 0);
        notification.setLatestEventInfo(context, resources.getString(R.string.app_name),
              res.getText(R.string.my_text), pending);
        notification.ledARGB = Notification.DEFAULT_LIGHTS;
        notification.vibrate = new long[] {0,100,200,300};
        notification.sound = Uri.parse(appPrefs.getString(resources.getString(R.string.ringtonePrefs), ""));
        notificationManager.notify(resources.getString(R.string.app_name), MY_ID, notification);
       }
      }
    Mais lorsque mon activité se lance, c'est une nouvelle instance avec les informations fixée à l'initialisation. Lorsque j'appuie sur la touche retour, je reviens à mon application avec les informations voulues. Je n'arrive pas à ne pas lancer la seconde instance.

    Autre besoin, j'aimerais également que lorsque je clique sur ma notification, celle-ci disparaisse.

    Je développe sur le système d'exploitation Android 4.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 168
    Points : 212
    Points
    212
    Par défaut
    Pour faire disparaitre la notification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    Et pour retrouver les infos, essaie le onResume() de ton activity

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Points : 48
    Points
    48
    Par défaut
    Merci, le flag efface bien la notification au clic. Sur ce coup là, j'aurais dû mieux lire la doc.

    Sinon au niveau de mon activité, elle ne passe visiblement pas dans le onResume dans les operations que je décris dans mon extrait de code. J'arrive à la lancer l'application, mais en lui ajoutant une activité vierge en premier plan. L'activité que je souhaite en réalité afficher se trouve juste en dessous (en cliquant sur la touche de retour je la vois) avec toutes les informations requises.
    Ces deux activités sont du même type et je ne vois pas comment les différencier dans mon receiver pour lancer celle qui contient réellement l'information.

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Pour n'avoir qu'une seule instance d'une Activity

    http://developer.android.com/guide/t...y-element.html

    android:launchMode

    "standard"
    "singleTop"
    "singleTask"
    "singleInstance"
    Par défautl je te proposerais celle ci
    "singleTop" Conditionally If an instance of the activity already exists at the top of the target task, the system routes the intent to that instance through a call to its onNewIntent() method, rather than creating a new instance of the activity.
    Maintenant à toi de voir quel mode correspond le plus à tes attentes

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Points : 48
    Points
    48
    Par défaut
    Impeccable, c'est exactement ce qu'il me fallait. L'intégralité de mes interrogations est levé. Merci à vous deux.

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

Discussions similaires

  1. [XL-2010] Lancer une macro par clic sur une shape
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/03/2015, 12h14
  2. Réponses: 2
    Dernier message: 11/10/2012, 14h33
  3. Réponses: 1
    Dernier message: 29/07/2009, 09h02
  4. Réponses: 1
    Dernier message: 09/03/2007, 11h38
  5. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07

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