为网络和/或持久存储序列化 Android Bundle?

2024-06-21

我需要序列化一个全面的应用程序(游戏)状态,以便通过网络传输或保存到磁盘并在以后检索。

当然,捆绑包用于在多个用例中保存/恢复状态,因此使用它们将是理想的选择。但是,由于某种原因,Bundle 不可序列化。

寻找解决方案只发现了将 Bundle 转换为 Parcel 然后对其进行编组的不可接受的黑客行为,但这不是一个可接受的解决方案,因为不能保证可以在以后或某个时间解组数据。远程设备。

所以现在看来​​,唯一的解决方案似乎是从 Bundle 中获取整个键集,获取每个包含的对象,对每个 Object.Class 进行相当大的 switch/case 并手动构造一个巨大的 ByteBuffer 或类似的所有对象这些数据以及大小和类型信息,以便在另一侧成功重建整个事物。

不太顺利。

有谁知道更好的方法吗?也许有人已经为 Bundle 创建了一个实用函数来执行此操作?


好问题!我想知道您是否需要序列化整个捆绑包或仅序列化其中包含的信息?也许您只需要可以以任何类型(字符串、列表或数组)保存的信息。看看下面的子类java.io.Serialized http://developer.android.com/reference/java/io/Serializable.html,这是巨大的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为网络和/或持久存储序列化 Android Bundle? 的相关文章

随机推荐