2011-09-04 89 views
4

我嘗試創建多個通知。如果點擊通知,它會將 鏈接到其他活動。在下面的代碼後,它會創建兩行通知。 但是,當我點擊通知的第一行時,它不起作用。 只有第二個作品。第二個通知不起作用

for (int i = 0; i < missionName.size(); i++) { 
    mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    final Notification notifyDetails = new Notification(R.drawable.icon, 
      "Mission Completed, Click Me!", System.currentTimeMillis()); 
    notifyDetails.defaults |= Notification.DEFAULT_SOUND; 
    notifyDetails.defaults |= Notification.DEFAULT_VIBRATE; 
    Context context = getApplicationContext(); 
    CharSequence contentTitle = missionName.get(i) + " is completed"; 
    CharSequence contentText = "Please click to view the mission"; 
    Intent notifyIntent = new Intent(getApplicationContext(),MissionMap.class); 
    notifyIntent.putExtra("missionName", missionName.get(i)); 
    PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this, 
      0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK); 

    notifyDetails.setLatestEventInfo(context, contentTitle, contentText, 
      intent); 
    mNotificationManager.notify(i, notifyDetails); 
} 

所以,請幫我找到我的錯誤。非常感謝。

回答

17

您應該使用不同的請求代碼創建PendingIntent。 更改此:

PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this, 
     0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK); 

要這樣:

PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this, 
     i, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK); 

請注意,我已經改變了第二個參數而不是0 意圖你的循環索引(i)如果您使用不創建相同的參數,而是他們使用具有相同參數的以前的意圖。

這應該可以解決您的問題。

+0

謝謝你,我知道了:)) – Yoo

+2

走回家早,因爲你的感謝@incrediApp –

+0

@incrediApp睡的早,因爲你 –

0
Random random = new Random(); 
    int randomNumber = random.nextInt(9999 - 1000) + 1000;  

    Intent resultIntent = new Intent(this, MainActivity.class); 
    TaskStackBuilder TSB = TaskStackBuilder.create(this); 
    TSB.addParentStack(MainActivity.class); 

    TSB.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = 
      TSB.getPendingIntent(
        randomNumber, 
        PendingIntent.FLAG_UPDATE_CURRENT 
      ); 

    nb.setContentIntent(resultPendingIntent);