在应用程序更新之间更改Parcelable结构

时间:2016-03-22 09:48:59

标签: android broadcast parcelable parcel

我有一个Parcelable结构,我通过IntentContext.sendBroadcast()内发送,以便与某个应用程序的接收器进一步处理。

在我的应用程序的更新版本中,我更改了Parcelable's结构,因此我更改了某些字段的类型。

我想知道在应用程序更新之前是否调用发送广播是否会将其保留在具有旧Parcelable结构的系统中的某个位置,因此我有机会在我的应用程序中进一步了解它由于不相关的结构而无法读取Parcelable导致的异常?

或者我错了,Android以某种不同的方式处理这种情况?

1 个答案:

答案 0 :(得分:0)

正如医生所说,不建议在进程之间发送包裹。

  

例如,一个应用程序可以使用AlarmManager类设置警报,并在警报意图上使用自定义的Parcelable。警报响起时,系统会修改意图的附加捆绑产品以添加重复计数。此修改可能导致系统从多余的内容中剥离自定义Parcelable。反过来,这种剥离可能导致应用程序收到修改后的警报意图后崩溃,因为该应用程序希望接收到的数据不再存在。

https://developer.android.com/guide/components/activities/parcelables-and-bundles

因此,最好仅将字符串ID保存到对象。您可以从其他地方(例如本地数据库)加载它。