Моя цель: скачивать файлы параллельно, и когда загрузка файлов завершится, я получаю уведомления.
Предполагается, что эти уведомления запускают действие при нажатии на него, которое получает уникальные параметры через putExtra
.
Проблема в том, что у меня не может быть разных значений при каждом запуске этого действия.
Каждый раз, когда действие, которое запускается через панель уведомлений, запускает его, уничтожает лишние из тех, которые еще не были запущены (те, которые все еще появляются в панели уведомлений).
Как мне сохранить все мои уведомления с их собственными параметрами?
Вот мой код:
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);
Теперь это диалоговое задание:
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");
...
}
Я пытался использовать эту технику, как она была написана в другом посте, но она не сработала.
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);