2013-02-21 73 views
0

我有從數據庫中查詢的對象的ArrayList,我想通知我的所有對象以在用戶觸摸通知時將其刪除。在Android中處理多個通知

我把我的對象的每個ID意圖和啓動意圖將其刪除,但問題是,當我觸摸通知第一項的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); 
    } 

回答

3

這是因爲,當你調用

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

您提供值「1」靜態請求ID,因此該方法每次都返回你同樣PendingIntent 。要爲每個項目創建不同的PendingIntents,請爲每個呼叫提供唯一的請求ID。希望這可以幫助。

+0

如果我將1更改爲i。它會起作用嗎? – aratn0n 2013-02-21 11:31:03

+0

@ aratn0n,是的,它應該工作。 – Egor 2013-02-21 11:31:52

+0

非常感謝。它現在有效。 – aratn0n 2013-02-21 11:39:58