PendingIntent有一個getActivity方法,第一個參數是上下文,第二個參數 requestCode,第三個參數是 Intent,用來存儲信息,第四個參數是對參數的操作標識,常用的就是FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT。
當使用FLAG_UPDATE_CURRENT時:
PendingIntent.getActivity(context, 0, notificationIntent,PendingIntent.FLAG_CANCEL_CURRENT時);
FLAG_UPDATE_CURRENT會更新之前PendingIntent的消息,比如,你推送了消息1,並在其中的Intent中putExtra了一個值“ABC”,在未點擊該消息前,繼續推送第二條消息,並在其中的Intent中putExtra了一個值“CBA”,好了,這時候,如果你單擊消息1或者消息2,你會發現,他倆個的Intent中讀取過來的信息都是“CBA”,就是說,第二個替換了第一個的內容
當使用FLAG_CANCEL_CURRENT時:
依然是上面的操作步驟,這時候會發現,點擊消息1時,沒反應,第二條可以點擊。
導致上面兩個問題的原因就在於第二個參數requestCode,當requestCode值一樣時,后面的就會對之前的消息起作用,所以為了避免影響之前的消息,requestCode每次要設置不同的內容。