Android 将XML/JSON响应缓存到应用程序中的最佳方法。全文文件?
我目前正在我的各种应用程序中使用XML或JSON Web服务 我只是想知道什么是将这些答案缓存在文本文件中最简单的方法 我一直在考虑数据库,但这似乎过于复杂了 所以,我想做的是Android 将XML/JSON响应缓存到应用程序中的最佳方法。全文文件?,android,xml,json,web-services,caching,Android,Xml,Json,Web Services,Caching,我目前正在我的各种应用程序中使用XML或JSON Web服务 我只是想知道什么是将这些答案缓存在文本文件中最简单的方法 我一直在考虑数据库,但这似乎过于复杂了 所以,我想做的是 要在手机内存中存储这些xml/JSON文件,我应该这样做吗 String FILENAME = "MyXmlFile"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVAT
String FILENAME = "MyXmlFile";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
谢谢。您可以应用SharedReferences,它也是一个XML文件。只需首先解析JSON/XML,提取所有键/值对,然后写入pref文件。下次加载onCreate()时,只需从pref重新加载键/值。 此示例可能会给您一个开始:
这将与编写XML/JSON相反。
使用openFileInput获取FileInputStream。将流读入字符串,然后对其进行解析。另一种方法是使用很棒的库。它允许您使用ETag检查响应是否未修改(HTTP 304未修改)。如果未修改,则使用文件缓存中的JSON,否则请求获取新资源
File latest = new File("/data/cache.json");
HttpRequest request = HttpRequest.get("http://google.com");
//Copy response to file
request.body(latest);
//Store eTag of response
String eTag = request.eTag();
//Later on check if changes exist
boolean unchanged = HttpRequest.get("http://google.com")
.ifNoneMatch(eTag)
.notModified();
对于在Java中解析JSON,我强烈推荐Google的GSON——是的,GSON非常棒。关于首选项中的成对键/值,我认为这很难,因为我不知道内存中的项目数,我也可以将此数字存储在首选项中,但我将首先尝试Hamant Sharma解决方案,如果不适合,将尝试您的解决方案。