7
votes

Déterminer si l'activité est appelée par une notification

J'utilise une activité Activitiy forte> avec divers onglets strong> dessus. Dans une partie différente de la demande, des notifications sont créées pour dire à l'utilisateur que quelque chose a changé. J'ai maintenant réussi à appeler l'activité forte> lorsque l'utilisateur clique sur la notification forte>. Mais comment puis-je déterminer la connexion à une activité forte> forte> est créée la voie "normale" pendant l'exécution ou en cliquant sur la notification?

(Selon la notification cliquée, je veux transmettre à un autre onglet au lieu de Affichage de l'onglet principal.) p>

onTriggeredByNotification(Notification noti){
     //determinte tab, depending on Notification.
}


0 commentaires

3 Réponses :


1
votes

Vous pouvez essayer cela dans votre notification notification xxx

dans l'activité remplacement OnNewIntent () Méthode et obtenir une action afin que vous puissiez déterminer l'activité est appelée ou non.


2 commentaires

J'ai essayé cela, mais la méthode OnNewIntent n'est pas déclenchée à tout moment.


Ok alors essayez d'obtenir l'intention de onecreate () d'activité.



1
votes

mieux que d'utiliser le champ d'action réservé de votre intention spécifié par @Ciintech, vous pouvez utiliser un paramètre supplémentaire dans votre intention en attente et la détecter dans votre méthode Oncreate et dans votre OnNewintent METOD à l'intérieur de votre activité.


0 commentaires

20
votes

transmettez une valeur booléenne de la notification et vérifiez la même chose dans la méthode oncreate de l'activité.

if (getIntent().getExtras() != null) {
  Bundle b = getIntent().getExtras();
  boolean cameFromNotification = b.getBoolean("fromNotification");
}


0 commentaires