在解析网络响应时,我们在Volley库中得到了一个OutOfMemory错误。这种情况发生在劣质手机上的大量响应中。这种情况可以避免吗?有没有办法让Volley分批解析响应呢?
下面是一个例外:
07-18 14:33:41.449 6130-6154/com.tinder E/AndroidRuntime: FATAL EXCEPTION: Thread-22
java.lang.OutOfMemoryError
at java.lang.String.<init>(String.java:325)
at java.lang.String.<init>(String.java:276)
at com.android.volley.toolbox.JsonObjectRequest.parseNetworkResponse(JsonObjectRequest.java:66)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:116)这发生在Droid X (2.3.4)上。
发布于 2013-08-09 01:05:48
因此,为了解决这个问题,我转而使用通用的HttpConnection和JsonReader来解析输入流。希望有人会添加到Volley中,并使其能够返回JsonReader ...也许是我..。在我丰富的业余时间..。
发布于 2013-11-26 11:06:24
我唯一一次在Volley中看到OutOfMemoryErrors是在我的代码中有一个OS 2.3特定内存泄漏的时候。如果你能可靠地重现这个错误(例如,在带有测试数据的自动化测试中),那么你可能应该在Google Android论坛上提出一个问题。
为了防止对他人有所帮助,我将Volley source复制到my own Github repository中,并做了一些小更改,以便将OutOfMemoryErrors作为VolleyErrors来处理。这使得记录/处理内存不足的情况变得稍微简单一些。
下面是具体的提交:
https://github.com/daj/volley/commit/c9e28fceda34074dda3734561502a20a28167ca9
https://stackoverflow.com/questions/17734789
复制相似问题