XmlPullParser を使用して、モバイル デバイスで http 経由でデータを徐々にロードしています。
このような接続の速度は 1KB/秒以下になることが多いため、PullParser のデフォルトのバッファ サイズである 8096 バイトを下げたいと考えています。
どうすればそれが可能になるのか、誰にも考えがありますか? (また、PullParser が独自のバッファーを持っているのはなぜですか?)
XmlPullParser を使用して、モバイル デバイスで http 経由でデータを徐々にロードしています。
このような接続の速度は 1KB/秒以下になることが多いため、PullParser のデフォルトのバッファ サイズである 8096 バイトを下げたいと考えています。
どうすればそれが可能になるのか、誰にも考えがありますか? (また、PullParser が独自のバッファーを持っているのはなぜですか?)
私の知る限り、に渡される Reader オブジェクトまたは InputStream オブジェクトのバッファ サイズを設定する必要がありますXmlPullParser.setInput()
。
setInput() メソッドはいずれかのタイプのソースを受け入れることができますが、どちらも抽象的であるため、使用する Reader または InputStream の実際のタイプは異なる場合があります。バッファが含まれているものもあります。その場合は、ドキュメントを参照して確認する必要があります。使用しています。
編集:
バッファを持つ XmlPullParser を実装するクラスについては、何らかの「ワークスペース」が必要になるため、これは避けられないように思えますが、バッファのサイズと、それがReader または InputStream から毎回要求されるデータは、クラス定義に帰着します。
結論として、毎回要求されるデータの量を制御できる唯一の方法は、XmlPullParser を実装する独自のクラスを定義することです。最も簡単な方法は、オープン ソース クラス (Apache クラスなど) を拡張し、Reader または InputStream ソースから読み取るメソッドを単純にオーバーライドすることです (より小さなバッファーを使用)。