我在我的第一个Android应用程序(读取:pelase be gentle!)中发送了一条JSON消息,该消息被映射到实现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 :(得分:2)
创建待定意图时,您可以尝试添加标记FLAG_CANCEL_CURRENT
或FLAG_UPDATE_CURRENT
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);