Je peux trouver un moyen d'envoyer des paramètres à mon activité depuis ma notification.
J'ai un service qui crée une notification. Lorsque l'utilisateur clique sur la notification, je veux ouvrir mon activité principale avec certains paramètres spéciaux. Par exemple, un identifiant d'article, afin que mon activité puisse charger et présenter une vue détaillée de l'article. Plus précisément, je suis en train de télécharger un fichier, et lorsque le fichier est téléchargé, je veux que la notification ait une intention qui, lorsqu'on clique dessus, ouvre mon activité dans un mode spécial. J'ai essayé d'utiliser putExtra
sur mon intention, mais je n'arrive pas à l'extraire, donc je pense que je m'y prends mal.
Code de mon service qui crée la Notification :
// construct the Notification object.
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, tickerText);
contentView.setProgressBar(R.id.progress,100,0, false);
notif.contentView = contentView;
Intent notificationIntent = new Intent(context, Main.class);
notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.contentIntent = contentIntent;
nm.notify(id, notif);
Code de mon activité qui tente de récupérer le paramètre supplémentaire de la notification :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if(extras != null){
Log.i( "dd","Extra:" + extras.getString("item_id") );
}
Les extras sont toujours nuls et je n'obtiens jamais rien dans mon journal.
Btw... le onCreate
n'est exécuté que lorsque mon activité commence, si mon activité est déjà commencée, je veux aussi collecter les extras et présenter mon activité en fonction de l'item_id que je reçois.
Des idées ?