2014-07-24 40 views
0

在我的Android應用程序中,我需要從XML API下載某些文件的元數據。 我正在使用RetroFit處理我作爲異步實現的請求,在回調中我解析XML並將所需數據保存在文件中。刷新以前的Retrofit響應

當我需要獲取許多文件的信息時,我得到了OutOfMemoryError並用MAT分析堆,我發現以前的響應XML體仍然存在。有什麼辦法強制應用程序刷新已經使用的XML?

回答

3

我想我找到了解決辦法:

默認情況下,OkHttpClient使用內存高速緩存實施HttpResponseCache,切換到磁盤實現我能沒有得到任何OutOfMemory錯誤運行10000個請求。

我已經看過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);