接收大型XML对象

时间:2012-12-19 15:14:35

标签: android xml-parsing xmlpullparser

我的应用程序以XML格式从服务器接收一些数据。我使用XmlPullParser解析它。一切正常。直到服务器以BASE64编码(最多10 + Mb)发送大型嵌套对象 - 位图或文件。在具有少量VM堆(例如2.3)的旧设备上,String text = parser.getText();(内存不足)上的应用程序崩溃

在这种情况下我该怎么做?

有没有办法获得流?或者mabey XmlPullParser可以拆分并按部分分配给我?

1 个答案:

答案 0 :(得分:1)

一种可能性是切换到Sax Parsing。主要区别在于它不需要一次将整个xml字符串读入内存。相反,它将以小块的形式通过它。

设置起来有点复杂,但如果您在网上搜索“Android Sax Parsers示例”等内容,那么有一些很好的示例可以帮助您入门。只需花一点时间习惯用这种方式而不是使用拉解析器,这真的不再困难。