android - 接收大型 XML 对象

标签 android xml-parsing xmlpullparser

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

遇到这种情况怎么办?

有什么方法可以获取流吗?或者也许 XmlPullParser 可以拆分它并将它分成几部分给我?

最佳答案

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

设置起来有点复杂,但如果您在线搜索“Android Sax 解析器示例”之类的内容,可以找到一些很好的示例来帮助您入门。这真的没有任何困难,只需要花点时间来习惯以这种方式而不是使用拉式解析器。

关于android - 接收大型 XML 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13955378/

相关文章:

android - 为什么 Android XmlPullParser 在我的旧设备上真的很慢?

android - 在android中解析XML?

Android Dark 主题反转矢量绘图的颜色

android - Facebook android sdk 如何获取给定页面的点赞数

java - XML 解析和反序列化

xml - HTML 内部 XML 的 EDOMParseError

html - XSLT 值得吗?

android - 在 parcel 中读写 ArrayList<Object> 和各种类型的对象

HTC Thunderbolt 上的 Android 电子邮件多个附件问题

xml 拉解析器 Assets xml