Java 存储某些数据的最佳方式是Android

Java 存储某些数据的最佳方式是Android,java,android,json,data-storage,Java,Android,Json,Data Storage,我正在开发一个Android应用程序作为云Web服务的客户端。在登录屏幕中,我以JSON的形式下载了大量数据,如联系人列表和文件夹列表(仅名称和一些功能,不包括文件)。在对这个JSON进行反序列化之后,我将联系人列表和文件夹列表存储在.application文件的两个静态公共列表元素中,但在某些手机(如galaxy S3和galaxy Note 2)中,当应用程序进入后台时,它们会保存活动,但不会保存此数据列表,因此,如果用户在发现应用程序的联系人列表为空或出现空指针异常后从后台回来,因为有些人

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

这对您来说是一个很好的解决方案:
以下是有关数据存储的文档


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

我认为静态变量几乎是出于内存目的而被垃圾收集的第一件事,所以这就是为什么要丢失这些数据。
在onResume方法中,检查列表是否为空,如果为空,则再次启动下载任务。

如果将来自云的数据存储到数据库,则必须使用事务,该事务将首先安全存储所有数据,然后执行其他任务。 请访问以下链接观看:

我通常使用一种非常好的内容提供商方法,它基于一个名为datadroid()的小项目。图案非常漂亮,可重复使用

将sqlite与Greandore结合使用阅读一些关于存储数据的教程。android支持SQLite谢谢,我已经读了很多次了,但是SharedReferences对它来说太小了,一个数据库noSQL不是存储复杂数据对象的最简单的方法,然后尝试内部存储。这是一个简单的方法。这可能是我在这里读到的最简单的解决方案。谢谢,现在我来试试!不客气。接受我的回答将是最好的感谢;)我有一个自定义对象列表,无法调用“getBytes()”将其保存在文件中。我的应用程序中还包括一个已启动和暂停活动计数器,用于在锁屏或后台恢复后刷新数据。这已经适用于所有智能手机,但S3或Galaxy note 2除外。例如,在S3或Galaxy note 2中,我可以在后台恢复应用程序,但不会刷新数据。我尝试添加此控件,谢谢