可更新内容的Parcelable内容

时间:2015-12-21 16:08:55

标签: android parcelable

我在我的第一个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对象的东西。你能帮忙吗?

1 个答案:

答案 0 :(得分: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);