从服务器接收数据时出现OutOfMemoryException

时间:2013-10-10 05:46:17

标签: android json

我们正在准备Android中的服务器客户端应用程序,我们在从服务器接收数据时遇到问题。

应用程序正在抛出 Out of Memory Exception (Out of memory on a 57283558-byte allocation.)虽然我在largeHeap=true中指定了AndroidManifest.xml属性。

2 个答案:

答案 0 :(得分:0)

60Mb的json响应似乎过多。如果这实际上是您所期望的,那么您可能需要查看不同类型的响应,或者即时解析。很难说没有更多的细节...

答案 1 :(得分: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中的响应或稍后可以使用的内容