Méthode d'appel Android sur notification cliquez
Ce code crée une notification. Si vous cliquez dessus, l'application en cours est exécuté (l'intention est créé dans Entry
qui est mon seul Activity
), une version légèrement modifiée d'un des Développeurs Android blog:
private void makeIntent() {
NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification note = new Notification(R.drawable.prev, "Status message!", System.currentTimeMillis());
Intent intent = new Intent(this, Entry.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
note.setLatestEventInfo(this, "New Email", "Unread Conversation", pi);
note.flags |= Notification.FLAG_AUTO_CANCEL;
mgr.notify(NOTIFY_ME_ID, note);
}
Mais je ne veux pas commencer toute activité, mais simplement d'exécuter une méthode dans l'activité en cours. De ce que j'ai lu jusqu'à présent, je suppose que je dois utiliser des méthodes comme startActivityForResult()
utilisez intent-filters
et de mettre en œuvre onActivityResult()
mais après déconner avec toutes ces choses, de changer les choses dans le Intent
et PendingIntent
je n'ai pas encore de résultat utilisable. Est-il possible d', en quelque sorte, appeler une méthode dans Entry
(mon principal Activity
dans lequel le Intent
est créé), ou de prendre toute sortants ou entrants Intents
lorsque je clique sur mon nouvel Notification
?
PS. toutes mes excuses si c'est un double fil, il est très lent en ce moment, je ne peux pas rechercher correctement.
source d'informationauteur stealthjong | 2012-12-11
Vous devez vous connecter pour publier un commentaire.
Ajouter
android:launchMode="singleTop"
dans votreactivity
dans votre fichier de manifeste, ont la méthodeprotected void onNewIntent(Intent intent) { ... }
et utilisez ce code:Cela a fonctionné à 100% pour moi:
Placer ce code dans une méthode:
Puis dans le onCreate/constructeur de votre classe ce faire: