2013-10-10 25 views
-1

我們正在準備一個Android的服務器客戶端應用程序,並且我們正在從我的服務器接收數據時遇到問題。OutOfMemoryException當從服務器接收數據時

應用拋出內存溢出異常(Out of memory on a 57283558-byte allocation.)雖然我在AndroidManifest.xml指定largeHeap=true屬性。

+0

是在應用程序中涉及的圖像? – KOTIOS

+0

不,我只是從服務器獲取數據,並拋出異常 –

+0

好吧,去延遲加載[它可以在後臺獲取你的數據並緩存它] – KOTIOS

回答

0

60Mb json響應看起來過多。如果這實際上是你期望的,那麼你可能需要看看不同類型的響應,或者在飛行解析中。很難說沒有更多的細節...

+0

當我在文本文件中寫入Json Response時,文本文件的大小爲30 mb ... –

0

我懷疑你試圖保存你正在下載的內存,這就是爲什麼你得到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中的響應或稍後可以使用的東西

+0

當我在文本文件中寫入Json Response時,文本文件的大小爲30 mb ... –

相關問題