1

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

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

有什么方法可以获取流吗?或者mabeyXmlPullParser可以把它分开并分部分给我?

4

1 回答 1

1

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

设置起来有点复杂,但如果你在网上搜索“Android Sax Parsers example”之类的东西,有一些很好的示例可以帮助你入门。这真的不再困难,只需花一点时间来习惯这样做,而不是使用拉式解析器。

于 2012-12-19T15:23:27.043 回答