0

我正在创建一个 Android 应用程序(在 Java 中)并试图在生命周期之间保存对象并确保它们被保存,即使在 onDestroy() 可能被调用之后也是如此。根据我的研究,似乎有 3 种方法可以长期保存对象。

1) 序列化 2) Parcelable 3) JSON(特别是通过 Gson)

此外,我必须在活动之间传递这些对象。我知道 Parcelable 并不是真正用于保存对象,并且序列化在 Android 中非常慢,并且可能不适合通过 Intents 传递。我对 Gson 还不是很熟悉。

我想要一种保存对象的方法,它也是宽容的(也就是说,我可以在发布更新之间编辑对象的结构,而不会使以前的对象变得无用,或者能够将所述对象恢复到较新的版本)。

JSON(特别是通过 Gson)是我通过生命周期持久化对象以及通过意图传递对象的最佳方式吗?

谢谢!

4

2 回答 2

0

是否需要保存对象?你能把数据保存为文件吗?您是否考虑过标准文件 API:http: //developer.android.com/training/basics/data-storage/files.html

您还可以使用 SQLite http://developer.android.com/guide/topics/data/data-storage.html#db http://developer.android.com/training/basics/data-storage/databases.html http ://www.vogella.com/articles/AndroidSQLite/article.html

如果您需要 ORM 将保存的数据映射到对象: http: //droidparts.org/orm.htmlhttp://droidparts.org/orm.htmlhttp://greendao-orm.com/http: //satyan.github.io/sugar/

于 2013-06-25T17:55:33.947 回答
0

也许不一定是 Json 数据,但也许是 XML,甚至只是可以存储在 SD 卡上的原始文本数据,或者如果没有 SD 卡,则内部存储也可以工作。只要用户不删除您的数据,以这种方式存储数据就不会有任何问题。

从那里开始,即使您确实决定更改存储数据的方式,您也可以编写一个转换器来检测已弃用的数据并对其进行升级。

另外,您可能希望使用意图将消息传递给其他活动以对存储的数据执行某些操作,而不是通过意图管道传递一堆数据。

消息可以是简单的字符串,甚至是整数,接收活动可以解释它以完成一组操作。

于 2013-06-25T17:45:31.840 回答