相关疑难解决方法(0)

将Bundle保存到SharedPreferences

我已经竭尽全力让我的Android游戏的所有数据都适合saveInstanceState Bundle.共有很多数据,包括许多Parcelable对象.这可确保当应用程序暂停或方向更改时,重新创建的活动不会丢失任何数据.

但是,我刚刚发现savedInstanceState包显然不适合长期存储.所以我正在寻找一种方法,我可以调整我现有的保存方法作为长期解决方案,以便始终可以恢复游戏状态.

到目前为止,我听说过2个解决方案:

1)使用savedInstanceState包进行方向更改,但在应用程序需要完全关闭时还要包含SharedPrefs.

这看起来非常适得其反,因为它使用2种不同的完全方法来做同样的事情.此外,由于我的savedInstanceState Bundle使用Parcelable对象,因此我必须为这些对象中的每一个提供另一种方法,以使它们能够写入SharedPrefs.基本上很多重复和难以管理的代码.

2)序列化savedInstanceState Bundle并将其直接写入文件.

我对此持开放态度,但我实际上并不知道如何去做.但是,我仍然希望可能有更好的解决方案,因为我听说Android中的序列化"可笑/非常慢".

如果有人能为我提供解决方案,我将非常感激.

android bundle save sharedpreferences

22
推荐指数
2
解决办法
2万
查看次数

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

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

当然,Bundles用于在几个用例中保存/恢复状态,因此使用它们将是理想的.但是,由于某种原因,Bundle不可序列化.

寻找一个解决方案只是出现了将Bundle转变为包裹然后编组的不可接受的黑客攻击,但这不是一个可接受的解决方案,因为无法保证可以在以后或之后解组数据.远程设备.

现在看来,唯一的解决方案似乎是从Bundle获取整个键集,获取每个包含的Object,在每个Object.Class上做一个相当大的开关/ case并手动构建一个巨大的ByteBuffer或类似的这些数据以及大小和类型信息,以便成功地重建另一方的整个事物.

不完全顺利.

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

android bundle

8
推荐指数
1
解决办法
1257
查看次数

标签 统计

android ×2

bundle ×2

save ×1

sharedpreferences ×1