2015-12-21 103 views
0

我有一個JSON消息被髮送到我的第一個Android應用程序中的監聽服務(讀取:pelase be gentle!),它映射到實現Parcelable的對象。反序列化的對象用於顯示通知,其目的是啓動另一個在佈局中顯示完整數據的活動。可更新內容不可更新

使用反序列化的對象,我可以在通知中顯示信息而沒有問題。在該通知中的代碼啓動次要活動:

Intent intent = new Intent(this, SecondaryActivity.class); 
intent.putExtra("objData", myObj); 

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setContentTitle(myObj.getTitle()) 
        .setStyle(new NotificationCompat.BigTextStyle() 
          .bigText(myObj.getAbstract())) 
        .setContentText(myObj.getAbstract()); 

mBuilder.setContentIntent(contentIntent); 
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 

在SecondaryActivity我解開包裹,像這樣:

MyObject myObj = getIntent().getParcelableExtra("objData"); 

,並使用其數據來填充佈局區域。

這對第一次通知很有效。在後續通知中,通知看起來正確,但發送到SecondaryActivity的可發放數據不會更新(內容與第一次通知相同)。

我假設我遺失了明顯的阻止parcelable對象被更新的東西。你能幫我嗎?

+0

你可以張貼SecondaryActivity的代碼?此外,只有當您已經打開SecondaryActivity並且您單擊新通知時纔會出現問題?或者當您單擊SecondaryActivity打開的通知時您是否也會發生這種情況?您關閉該通知,新的通知將與新數據一起顯示,然後您單擊該通知,然後用舊數據打開舊的SecondaryActivity? – Aegis

回答

2

在創建掛起的意圖,你可以嘗試添加標誌FLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
+0

謝謝,這正是我需要的。 – k3davis