Question

My target: download files in parallel, and when file downloads complete, I get notifications.

Those notifications are suppose to launch an activity when you click on it which gets unique parameters through putExtra.

The problem is that I can't have different values in each launch of that activity.

Each time the activity, which is being launched through the notification bar, launches it destroys the extra of the ones which haven't been launched yet (the ones that still appear on the notification bar).

How do I keep all my notifications with their own parameters?

Here is my code:

if (messagesManager == null)
{
    messagesManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
}

notification = new Notification(R.drawable.icon, message, System.currentTimeMillis());

// for launch activity
Intent intent = new Intent(context, DialogActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("fileName", fileName); //- this is where i put my extra's!!
intent.putExtra("onSdcard", onSdcard);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(context, "DownloadManager", message, contentIntent);
notification.flags = notification.FLAG_AUTO_CANCEL;
int noticeId = generateNotificationId(requestId);
messagesManager.notify(noticeId, notification);

Now this is the dialog activity:

protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    Intent i = getIntent();
    boolean onSdcard = i.getBooleanExtra("onSdcard", true);
    String fileName = i.getStringExtra("fileName");
    ...
}

I tried to use this technique as it was written in another post here, but it didn't work.

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
Was it helpful?

Solution

Please check the linked duplicate,

you need two things

  • you need to add an action string
  • the action string must be unique, probably a timestamp added to it would be good
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top