Отправка различных параметров в pendingIntent через уведомление - PullRequest
2 голосов
/ 06 июля 2010

Моя цель: скачивать файлы параллельно, и когда загрузка файлов завершится, я получаю уведомления.

Предполагается, что эти уведомления запускают действие при нажатии на него, которое получает уникальные параметры через 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);

1 Ответ

0 голосов
/ 06 июля 2010

Пожалуйста, проверьте связанный дубликат,

вам нужны две вещи

  • вам нужно добавить строку действия
  • строка действия должна быть уникальной, вероятно,добавленная временная метка была бы хороша
...