Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Javascript 用于缓存JSON的共享首选项与SQLite_Javascript_Android_Json_Sqlite - Fatal编程技术网

Javascript 用于缓存JSON的共享首选项与SQLite

Javascript 用于缓存JSON的共享首选项与SQLite,javascript,android,json,sqlite,Javascript,Android,Json,Sqlite,在Android应用程序生命周期之间,保存JSON的最佳方式是什么?现在我正在使用rest服务返回JSON。我使用这个JSON作为javascript图表的数据提供者,我正在加载到大量的Web视图中。我不想不断地点击服务器来请求JSON,而是希望缓存它,并在需要时检索它,允许用户手动更新/刷新数据 我是应该使用共享首选项还是应该持久化到SQLite表?我主要关心的是,即使在应用程序被终止/重新启动之后,仍然能够检索存储的数据。我也有大量的JSON,我想知道哪一个是最有效的 这取决于你的数据有多大

在Android应用程序生命周期之间,保存JSON的最佳方式是什么?现在我正在使用rest服务返回JSON。我使用这个JSON作为javascript图表的数据提供者,我正在加载到大量的Web视图中。我不想不断地点击服务器来请求JSON,而是希望缓存它,并在需要时检索它,允许用户手动更新/刷新数据


我是应该使用共享首选项还是应该持久化到SQLite表?我主要关心的是,即使在应用程序被终止/重新启动之后,仍然能够检索存储的数据。我也有大量的JSON,我想知道哪一个是最有效的

这取决于你的数据有多大

共享引用

在键值对中存储私有基元数据

如果您只想存储2-3个变量和整数,boolean SharedReferences就可以了

Sqlite

将结构化数据存储在专用数据库中


如果您的数据包含很多项,比如填写ListView,那么最好实现SQLite,因为数据存储的顺序更为有序,您可以为这些数据设置id,例如,您可以将id设置为今天的日期,并检查当前日期是否大于id,然后您可能需要随之刷新。有一些功能强大的类可以帮助您喜欢CursorAdapter和Cursor,如果您想使事情变得简单,那么您应该将JSON响应字符串保存到 SharedReference将密钥关联到JSON

很容易从SharedReference中检索。 您只需检查特定密钥是否存在于ShredReference中, 如果没有,那么您可以点击服务器,否则从ShredPrefence获取JSON响应


当用户手动更新时,更新SharedReference中的JSON响应

对于小数据,您可以使用SharedReferences;对于大数据,您可以使用Sqlite