2017-08-08 33 views
0

我有應用程序,它發送通知,我使用此代碼爲未決的意圖待定意圖用於一個以上的通知

Intent myIntent = new Intent(getApplicationContext(),MainActivity.class); 
    myIntent.putExtra("link",Link); 

    PendingIntent intent2 = 
    PendingIntent.getActivity(getApplicationContext(),1,myIntent, 
    PendingIntent.FLAG_ONE_SHOT); 

和它的第一次工作很好,但我使用這段代碼的方法內每1分鐘調用一次。

問題是,link變量從一個變到另一個。

當我得到MainActivity中的數據時,我只找到最後一個鏈接,所有創建的通知都有最後一個鏈接。

我不知道如何避免這種情況。

回答

1

您正在爲待處理意圖發送相同的請求代碼。這些代碼被定義爲您的等待意向聲明

變化的第二個參數

PendingIntent intent2 = 
    PendingIntent.getActivity(getApplicationContext(),1,myIntent, 
    PendingIntent.FLAG_ONE_SHOT); 

要:

PendingIntent intent2 = 
    PendingIntent.getActivity(getApplicationContext(),UNIQUE_INT_VALUE_FOR_EVERY_CALL,myIntent, 
    PendingIntent.FLAG_ONE_SHOT); 

如果你用相同的ID,意圖將被重用,你只會獲取最後的數據,而不是爲每個呼叫獲取新數據。

+0

真棒,這完美地工作。 非常感謝你 – iosamammohamed

+0

非常樂意提供幫助。 :) –

0

試試這個,

PendingIntent contentIntent = PendingIntent.getActivity(GCMNotificationIntentService.this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);