Comment faire pour déterminer si l'Application Android ouvert à compter de la Notification de message?
En général, quand j'ai le message de notification sur la barre de notification et cliquez sur elle. Ouvrir le régime enregistré d'Application pour ce message.
Au Démarrage de l'Activité, la Façon de déterminer si l'Application est ouverte à partir d'elle?
et plus mieux, c'est Comment récupérer la notification de l'id sur le OnCreate() la méthode?
Mise à jour: à partir de @Ovidiu - voici mon code pour putExtra de pousser
Notification notification = new Notification(icon, tickerText, System.currentTimeMillis());
notification.contentView = contentView;
Intent notificationIntent = new Intent(this, Startup.class);
notificationIntent.putExtra("JOBID", jobId);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT);
notification.flags = Notification.FLAG_AUTO_CANCEL;
notification.contentIntent = contentIntent;
mNotificationManager.notify(jobId, notification);
et sur les Activités Principales "Startup.java" le code est
Intent intent = this.getIntent();
if (intent != null && intent.getExtras() != null && intent.getExtras().containsKey("JOBID")) {
int jobID = this.getIntent().getExtras().getInt("JOBID");
if (jobID > 0) {
}
}
intention.getExtras() retourne toujours null. Tourner, j'ai besoin de passer PendingIntent.FLAG_ONE_SHOT . Il est maintenant passé le long!!
- "besoin de passer PendingIntent.FLAG_ONE_SHOT" - a été vraiment utile. Mais vous avez besoin de vérifier une autre chose - si cette Activité est venue de l'histoire. Vérifier ma réponse ci-dessous.
- FLAG_ONE_SHOT entraîne l'application à être lancé qu'une seule fois lorsque vous cliquez sur la notification, ce qui pourrait ne pas être ce que vous voulez dans le cas d'un collant de notification à partir d'un service d'arrière-plan. Dans cette situation, FLAG_UPDATE_CURRENT a fonctionné pour moi.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
putExtra(ID_KEY,id)
lorsque vous créez votreIntent
pour le démarrage de votre application, et dans votreonCreate()
méthode que vous pouvez utilisergetIntent().getExtras().getInt(ID_KEY);
pour récupérer votre id passéinteger
.Le Début de l'Activité code serait comme ça, sinon, après, une fois il s'agit de la GCM, de notification, à partir de là tous les temps de l'Activité de la Récente liste, il va dire qu'il vient de GCM notification, ce qui est faux.
J'ai Eu le même problème, et je ne comprends pas pourquoi je dois utiliser le putExtra méthode...
Donc, j'ai résolu comme ceci: lorsque vous recevez une notification et appuyez sur, l'application s'ouvrira (en général, il ouvre l'application principale de l'activité) et, dans les suppléments, vous pouvez trouver quelques informations sur la notification.
Vous pouvez ajouter une clé/valeur params pour les notifications que vous envoyez à des périphériques enregistrés. Ces paramètres seront ajoutés à l'intention des extras.
De sorte que vous pouvez agir de la sorte: à votre avis, ajouter un paramètre qui correspond à votre id de notification.
Par exemple "messageId" -> "abc", où abc est votre notification de l'identificateur.
Ensuite, dans votre activité principale, vous pouvez le faire:
Et vous permettra de récupérer l'id de la notification.
Vous pouvez donc utiliser cette information pour, par exemple, obtenir la notification à partir de votre base de données ou d'autres opérations.