我們正在準備一個Android的服務器客戶端應用程序,並且我們正在從我的服務器接收數據時遇到問題。OutOfMemoryException當從服務器接收數據時
應用拋出內存溢出異常(Out of memory on a 57283558-byte allocation.)
雖然我在AndroidManifest.xml
指定largeHeap=true
屬性。
我們正在準備一個Android的服務器客戶端應用程序,並且我們正在從我的服務器接收數據時遇到問題。OutOfMemoryException當從服務器接收數據時
應用拋出內存溢出異常(Out of memory on a 57283558-byte allocation.)
雖然我在AndroidManifest.xml
指定largeHeap=true
屬性。
60Mb json響應看起來過多。如果這實際上是你期望的,那麼你可能需要看看不同類型的響應,或者在飛行解析中。很難說沒有更多的細節...
當我在文本文件中寫入Json Response時,文本文件的大小爲30 mb ... –
我懷疑你試圖保存你正在下載的內存,這就是爲什麼你得到OOM。
你可以,如果你是API 9以上
在DownloadManager看一看或者嘗試的東西線:
URL url = new URL("http://www.example.com/largefile.zip");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
InputStream in = new BufferedInputStream(connection.getInputStream());
FileOutputStream out = openFileOutput("largefile.zip", Activity.MODE_PRIVATE);
編輯: 我抓到一提的一瞥爲60MB json響應。你應該真的重新考慮你在做什麼。也許你可以使用Jackson Streaming API解析和保存在db中的響應或稍後可以使用的東西
當我在文本文件中寫入Json Response時,文本文件的大小爲30 mb ... –
是在應用程序中涉及的圖像? – KOTIOS
不,我只是從服務器獲取數據,並拋出異常 –
好吧,去延遲加載[它可以在後臺獲取你的數據並緩存它] – KOTIOS