Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何保存我的应用程序解析的数据,以便它不会';以后重新打开应用程序时,是否不需要对其进行分析?_Java_Android_Json - Fatal编程技术网

Java 我如何保存我的应用程序解析的数据,以便它不会';以后重新打开应用程序时,是否不需要对其进行分析?

Java 我如何保存我的应用程序解析的数据,以便它不会';以后重新打开应用程序时,是否不需要对其进行分析?,java,android,json,Java,Android,Json,所以我正在开发我的应用程序,它解析来自LoL(传说联盟)API的数据,到目前为止还不错,但唯一的问题是,如果用户关闭应用程序,然后重新打开,它会再次解析数据。我希望我从JSON数据解析的对象在最初解析后保存,而不是在每次重新打开应用程序时重新下载它们。这会减慢我的应用程序的速度。有几种方法可以做到这一点,但它们基本上都在做相同的事情:序列化/反序列化对象。区别主要在于您使用的是哪种持久性存储和哪种序列化机制 至于持久性,您可以使用例如文件、数据库等 Java提供了人类无法读取的二进制序列化。相反

所以我正在开发我的应用程序,它解析来自LoL(传说联盟)API的数据,到目前为止还不错,但唯一的问题是,如果用户关闭应用程序,然后重新打开,它会再次解析数据。我希望我从JSON数据解析的对象在最初解析后保存,而不是在每次重新打开应用程序时重新下载它们。这会减慢我的应用程序的速度。

有几种方法可以做到这一点,但它们基本上都在做相同的事情:序列化/反序列化对象。区别主要在于您使用的是哪种持久性存储和哪种序列化机制

至于持久性,您可以使用例如文件、数据库等

Java提供了人类无法读取的二进制序列化。相反,您可以使用JSON、XML等格式。我假设Java内置序列化将是最快的,但如果同时更改了类,它将不会被反序列化


本地持久性还允许将您解析的对象映射到数据库中,并根据需要逐段加载它们。

将您的JSON数据保存为Android
SharedReferences
中的字符串。这是最方便、最快捷的方法


使用数据库存储信息,请参考sqlite,realmI想知道android中是否有一些原生方法来实现这一点?像应用程序存储一样?sqlite是android的一部分,用于存储离线使用的数据。在共享首选项中存储数据不是一种有效的方式。我指的是这种情况。在这种情况下,共享首选项比sqlite数据库更快。请通过commonware@SaravInfern检查此答案。谢谢您提供的信息。一个小问题。在android设备中,当您进入设置->应用->应用程序详细信息时,可以看到应用程序数据部分。这些数据是什么意思?只有共享首选项或共享首选项+dbApp数据包含数据库、首选项、库、文件和缓存