刷新以前的改造响应

时间:2014-07-24 10:00:00

标签: android retrofit okhttp

在我的Android应用中,我需要从XML API下载某些文件的元数据。 我正在使用RetroFit来处理我作为异步实现的请求,在Callback中我解析XML并在文件中保存我需要的数据。

当我需要获取许多文件的信息时,我得到OutOfMemoryError并使用MAT分析堆,我发现之前响应的XML主体仍然存在。有没有办法强制应用程序刷新已经使用的XML?

1 个答案:

答案 0 :(得分:3)

我想我找到了一个解决方案:

默认情况下,OkHttpClient使用HttpResponseCache的内存缓存实现,切换到磁盘实现我能够运行10000个请求而不会出现任何OutOfMemory错误。

我查看了this示例并编辑了以下行以使用Android内部存储:

File cacheDir = new File(System.getProperty("java.io.tmpdir"), "okhttp-cache");
cache = new HttpResponseCache(cacheDir, 10L * 1024 * 1024);
okHttpClient = new OkHttpClient();
okHttpClient.setResponseCache(cache);