指示XmlPullParser的缓冲区大小

时间:2010-12-24 01:40:27

标签: android xml connection buffer xmlpullparser

我正在使用XmlPullParser在移动设备上通过http逐步加载一些数据。

由于这种连接的速度通常低至1KB / s或更低,我想降低PullParser的默认缓冲区大小8096字节。

有人有想法,怎么可能? (另外,为什么PullParser甚至有自己的缓冲区?)

1 个答案:

答案 0 :(得分:2)

据我所知,您需要设置传递给XmlPullParser.setInput()的Reader对象或InputStream对象的缓冲区大小。

setInput()方法可以接受任何一种类型的源,但两者都是抽象的,你使用的Reader或InputStream的实际类型可能会有所不同 - 有些可能有缓冲区,在这种情况下你需要查看要检查的文档,具体取决于你正在使用什么。

修改

对于实现具有缓冲区的XmlPullParser的类 - 在我看来,这将是不可避免的,因为需要某种类型的“工作空间”,但缓冲区的大小以及它如何反映每次从Reader或InputStream请求的数据量将归结为类定义。

总之,我想说你能够控制每次请求的数据量的唯一方法是定义你自己的实现XmlPullParser的类。最简单的方法是扩展一个开源类(例如apache)并简单地覆盖从Reader或InputStream源读取的方法(使用较小的缓冲区)。