存储Android数据的最佳方式

时间:2013-11-04 14:24:14

标签: java android json data-storage

我正在开发一个Android应用程序作为云Web服务的客户端。在登录屏幕中,我下载了大量数据作为JSON,如联系人列表和文件夹列表(仅限名称和某些功能,而不是包含的文件)。在对这个JSON进行反序列化之后,我将联系人列表和文件夹列表存储在.application文件中的两个静态公共列表元素中,但是当应用程序进入时,在某些手机中(如galaxy S3和Galaxy Note 2)后台,他们保存活动但不保存这些数据列表,所以如果用户有时候从后台回来,他发现应用程序的联系人列表为空或者有空指针异常,因为有些人会删除此列表。为什么?是否有可能以其他方式保存它们?数据很复杂,因为联系人列表对象很复杂并且创建一个daabase是很多工作。另一个选项可以是共享首选项,用于存储联系人列表的序列化json,但最多可以为2MB json。

5 个答案:

答案 0 :(得分:1)

这对您来说是一个很好的解决方案: http://www.couchbase.com/communities/couchbase-lite

答案 1 :(得分:1)

以下是数据存储的文档。

Data Storage

内部存储将是最简单的解决方案。并且符合要求。

答案 2 :(得分:0)

我认为静态变量几乎是第一个为内存目的而被垃圾收集的东西,所以这就是你丢失这些数据的原因。 在onResume方法中,检查列表是否为null,如果它再次启动下载任务。

答案 3 :(得分:0)

如果将来自云的数据存储到数据库,则必须先使用可以安全存储所有数据的事务,然后再执行其他任务。 请访问以下链接观看:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#beginTransaction%28%29

答案 4 :(得分:0)

我通常使用一种非常好的内容提供程序方法,该方法基于一个名为Data Droid(http://www.datadroidlib.com/)的小项目。这种模式非常好,可以重复使用!