0
在我的Android應用程序中,我需要從XML API下載某些文件的元數據。 我正在使用RetroFit處理我作爲異步實現的請求,在回調中我解析XML並將所需數據保存在文件中。刷新以前的Retrofit響應
當我需要獲取許多文件的信息時,我得到了OutOfMemoryError
並用MAT分析堆,我發現以前的響應XML體仍然存在。有什麼辦法強制應用程序刷新已經使用的XML?
在我的Android應用程序中,我需要從XML API下載某些文件的元數據。 我正在使用RetroFit處理我作爲異步實現的請求,在回調中我解析XML並將所需數據保存在文件中。刷新以前的Retrofit響應
當我需要獲取許多文件的信息時,我得到了OutOfMemoryError
並用MAT分析堆,我發現以前的響應XML體仍然存在。有什麼辦法強制應用程序刷新已經使用的XML?
我想我找到了解決辦法:
默認情況下,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);