处理Android中的多个通知

时间:2013-02-21 11:21:18

标签: android android-layout notifications

我从数据库中查询了ArrayList个对象,并且当用户触摸通知时,我想通知我的所有对象以删除它们。

我将我的对象的每个id设置为intent并开始意图删除它,但问题是当我触摸通知时第一项的id是正确的但是其他的不是它仍然是第一个id。

这是代码

for(int i=0;i<listItem.size();i++){
        String message = "Remove \""+listItem.get(i).getName()+"\" "+listItem.get(i).getID();
        intent.putExtra("id", listItem.get(i).getID());
        String s = intent.getExtras().getString("ID");
        Toast.makeText(getApplicationContext(),"id : "+s, Toast.LENGTH_SHORT).show();
        Notification notification = new Notification(R.drawable.icon_noti,message,new Date().getTime());
        PendingIntent pI = PendingIntent.getActivity(getApplicationContext(), 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        notification.flags = Notification.FLAG_AUTO_CANCEL;
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        notification.setLatestEventInfo(getApplicationContext(), message, "Touch to remove" , pI);
        notification.sound = soundUri;
        notificationManager.notify(i,notification);
    }

1 个答案:

答案 0 :(得分:3)

这是因为当您致电

PendingIntent pI = PendingIntent.getActivity(getApplicationContext(), 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);

您提供值为“1”的静态请求ID,因此该方法每次都返回相同的PendingIntent。要为每个项目创建不同的PendingIntents,请为每个调用提供唯一的请求ID。希望这会有所帮助。