【发布时间】:2011-03-11 06:07:56
【问题描述】:
protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis());
notification.setLatestEventInfo(context, "Upload", response, pendingIntent);
nManager.notify((int)System.currentTimeMillis(), notification);
}
这个函数会被多次调用。我希望每个notification 在单击时启动 testActivity。不幸的是,只有第一个通知会启动 testActivity。单击其余部分会导致通知窗口最小化。
额外信息:函数displayNotification() 在一个名为UploadManager 的类中。 Context 从实例化的activity 传递到UploadManager。函数 displayNotification() 从一个函数中多次调用,同样在 UploadManager 中,该函数在 AsyncTask 中运行。
编辑 1:我忘了提到我将字符串响应作为 extra 传递给 Intent intent。
protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
intent.putExtra("response", response);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
这有很大的不同,因为我需要额外的“响应”来反映创建通知时的字符串响应。相反,使用PendingIntent.FLAG_UPDATE_CURRENT,额外的“响应”反映了上次调用displayNotification()时的字符串响应。
我知道为什么这是通过阅读FLAG_UPDATE_CURRENT 上的文档。但是,我目前不确定如何解决它。
【问题讨论】:
标签: android notifications android-pendingintent