我的应用程序以XML格式从服务器接收一些数据。我使用XmlPullParser
解析它。一切正常。直到服务器以BASE64编码(最多10 + Mb)发送大型嵌套对象 - 位图或文件。在具有少量VM堆(例如2.3)的旧设备上,String text = parser.getText();
(内存不足)上的应用程序崩溃
在这种情况下我该怎么做?
有没有办法获得流?或者mabey XmlPullParser
可以拆分并按部分分配给我?
答案 0 :(得分:1)
一种可能性是切换到Sax Parsing。主要区别在于它不需要一次将整个xml字符串读入内存。相反,它将以小块的形式通过它。
设置起来有点复杂,但如果您在网上搜索“Android Sax Parsers示例”等内容,那么有一些很好的示例可以帮助您入门。只需花一点时间习惯用这种方式而不是使用拉解析器,这真的不再困难。