通过通知向pendingIntent发送不同的参数

时间:2010-07-06 14:44:48

标签: android android-notifications

我的目标:并行下载文件,当文件下载完成后,我会收到通知。

这些通知假设您点击它时会启动一项活动,通过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 :(得分:0)

请检查链接的副本,

你需要两件事

  • 您需要添加操作字符串
  • 动作字符串必须是唯一的,可能添加的时间戳是好的