毕竟存储到磁盘时如何优雅地处理 Parcelable 实现更改?

How to gracefully handle Parcelable implementation changes when storing to disk after all?

我目前正在编写一个 View 库,它不再需要 Activity 和 Fragments,而且应该更容易理解等等。 不管怎样,这就是我的目标。

然而,我很难想出一个关于如何存储状态的解决方案。 我从子视图中获取状态作为 Parcelable,但是根据 Android 文档,Parcelable 实现可能有一天会中断

As such, it is not appropriate to place any Parcel data in to persistent storage: changes in the underlying implementation of any of the data in the Parcel can render older data unreadable.

因为这似乎是唯一可能的解决方案,而且它仅适用于状态(与 Activity 使用它的方式相同),所以应该没问题。

我现在问自己的问题是,Android Acitivty 如何在内部处理升级或降级? (它们甚至在设备重启时存储状态吗?) 有没有什么方法可以知道实现何时发生变化,这样我就不会破坏所有使用我的库的应用程序?

(我是否应该忽略这个问题,因为历史上它从未中断过?)

持久存储意味着保存到磁盘,即在进程的生命周期之后继续存在。

Android 仅在进程处于活动状态时存储 Parcelable 数据(例如绑定到 Activity 的数据),这意味着它永远不会遇到这些问题。只要你在做类似的事情,就没有问题。