2013-10-10 3 views
-1

Мы готовим клиентское приложение сервера на Android, и перед нами возникает проблема с получением данных с моего сервера.OutOfMemoryException при получении данных с сервера

Применение бросает Out Of Memory Exception(Out of memory on a 57283558-byte allocation.) Хотя я указал largeHeap=true атрибут в моем AndroidManifest.xml.

+0

- это изображения, связанные с приложением ур? – KOTIOS

+0

Нет. Я просто получаю данные с сервера и выбрасывает Exception –

+0

нормально, пойдите для ленивой загрузки [которая может извлекать данные ур в фоновом режиме и кэшировать ее] – KOTIOS

ответ

0

A 60Mb ответ json кажется чрезмерным. Если это на самом деле то, что вы ожидаете, тогда вам, возможно, придется посмотреть на другой тип ответа или на парсинг на лету. Трудно сказать, не более подробно ...

+0

Когда я пишу Json Response в текстовом файле, размер текстового файла составляет 30 мб ... –

0

Я подозреваю, что вы пытаетесь сохранить то, что вы загружаете, в память, и именно поэтому вы получаете OOM.

Вы можете посмотреть на DownloadManager, если вы API 9 и выше

или попробовать что-то в строках:

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); 

Edit: Я мельком упоминанием для 60MB json. Вы должны действительно пересмотреть то, что вы делаете. Возможно, вы можете использовать Jackson Streaming API, чтобы проанализировать и сохранить ответ в db или что-то, что вы можете использовать позже.

+0

Когда я пишу Json Response в текстовом файле, размер текстового файла составляет 30 мб ... –

Смежные вопросы