Je crée une notification avec quelque chose de semblable à ce qui suit:PendingIntent de notification et historique des applications en conflit
Intent ni = new Intent(this, SomeActivity.class);
ni.putExtra("somestring", "somedata");
PendingIntent contentIntent =
PendingIntent.getActivity(this, 0, ni,
PendingIntent.FLAG_UPDATE_CURRENT|PendingIntent.FLAG_ONE_SHOT);
Context context = getApplicationContext();
notification.setLatestEventInfo(context,
res.getString(R.string.app_name),
text, contentIntent);
La clé est ici les données supplémentaires sur l'intention de la notification. Une fois que je clique sur la notification et qu'elle affiche SomeActivity, elle affiche l'activité et les données supplémentaires sont disponibles.
Toutefois, si je quitte l'application, maintenez le bouton principal jusqu'à ce que la liste des activités récentes s'affiche, et choisissez d'ouvrir à nouveau l'application, les données supplémentaires sont toujours transmises. Y at-il un moyen que je peux faire passer ces données seulement si l'application est ouverte via la notification, et non de la liste des activités récentes?
Maintenant, la boîte de dialogue des activités récentes affiche simplement le nouveau PendingIntent ... ce qui signifie que j'ai le même problème - la boîte de dialogue des activités récentes lance toujours la même activité avec les mêmes données supplémentaires. – synic
Cela ne devrait se produire que si l'activité en question a été démarrée à partir de la «Notification». – CommonsWare
Je suppose que je ne comprends pas. Même si je commence une activité entièrement différente, et que je lance ensuite mon activité principale, je devrais toujours utiliser des extras pour la logique, et ils sont toujours passés à la nouvelle activité. J'ai essayé de faire ce "LauncherActivity" excludeFromRecents, mais cela a juste fait que toute l'application soit exclue, même si l'activité principale est spécifiée pour ne pas être exclue dans le manifeste. – synic