2015-07-25 3 views
0

Ceci est le code que j'utilise pour créer le PendingIntent pour ma notification.Android: ré-ouvrir l'application lorsque vous cliquez sur la notification

Intent notificationIntent = new Intent(context, Activity1.class); 

PendingIntent myIntent = PendingIntent.getActivity(context, 0,notificationIntent, 0); 

Cet élément PendingIntent lance Activity1 lorsque la notification est activée. Comment puis-je simplement rouvrir l'application et aller à l'activité la plus récente (comme si je cliquais sur l'icône du lanceur) au lieu de lancer une nouvelle activité lorsque la notification est cliquée?

Répondre

0

créer Activité1 comme une activité singletask, en changeant la launchMode de l'activité à singleTask ...

+0

L'activité 1 est juste un exemple, j'ai plusieurs activités dans l'application, je veux juste rouvrir l'application et aller au plus re cent Activité. – Code

0

définir votre activité launchMode="singleTop" dans votre Manifest.xml utilisez ce code au lieu de ce que vous utilisez ci-dessus pour rouvrir l'actif un:

Title = "YourAppName"; 
Text = "open"; 
notificationIntent = new Intent(this, Activity1.class); 
cIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(getApplicationContext(), Title, Text, cIntent); 
-2

Vous pouvez modifier android: launchMode dans le fichier manifest pour l'activité ciblée par l'intention en attente.

En règle générale, vous pouvez utiliser singleTop, qui réutilisera la même instance lorsque l'activité ciblée est déjà en haut de la pile de tâches (par exemple, l'activité est affichée avant que vous ne quittiez votre application).

Vous pouvez également envisager SingleTask et SingleInstance, si vous voulez garder une seule instance de l'activité.

2

Activité1 est juste un exemple. J'ai plusieurs activités dans l'application. Je veux juste de rouvrir l'application et aller à la plus récente activité

REMARQUE: cela ressemble à mal la conception pour moi, parce que la notification devrait permettre à l'utilisateur d'entrer une activité qui est dans le contexte de la notification.

Techniquement, vous pouvez créer une activité de redirection et votre intention de notification devrait lancer quand on tape dessus. Dans son onCreate() vous vérifiez ce que l'activité que vous souhaitez utilisateur sera redirigé (vous pouvez garder cette information dans SharedPreferences, et chaque activité écririez cette information dans onCreate() (ou faire que dans votre classe de base si vous en avez). Puis, en redirecteur vous appelez régulière startActivity() aller dernière activité et appelez finish() pour conclure votre redirecteur. de plus, l'activité de votre redirecteur n'a pas besoin de mise en page afin d'ajouter

android:theme="@android:style/Theme.NoDisplay" 

à son entrée Manifest (bien sûr, vous devez également pas d'appel à setContentView())