HttpEntity.getContent()
への呼び出しの進捗状況を報告できる方法はありますか?HttpEntity.getContent()進捗インジケータ?
私の場合は、応答ストリームに画像がありますので、転送にはかなりの時間がかかります。私はのスタイルをSTYLE_HORIZONTAL
に設定して転送の進行状況を更新したいと思っています。
これを行う方法はありますか?
ありがとうございます!
HttpEntity.getContent()
への呼び出しの進捗状況を報告できる方法はありますか?HttpEntity.getContent()進捗インジケータ?
私の場合は、応答ストリームに画像がありますので、転送にはかなりの時間がかかります。私はのスタイルをSTYLE_HORIZONTAL
に設定して転送の進行状況を更新したいと思っています。
これを行う方法はありますか?
ありがとうございます!
HttpEntity.getContentLength()
を使用して、ファイルのサイズを事前に決めてみましたか? AsyncTaskのonProgressUpdate()のようなものと組み合わせて使うと、それを実装できるはずです。
は、このリンクで
Download a file with Android, and showing the progress in a ProgressDialog
を見てくださいそれはあなたが探しているものをほとんど持っています。 urlConnectionを使用してInputStreamを取得し、HttpEntityを使用するように調整する必要があります。だから多分このようなものがあるだろう。
@Override
protected String doInBackground(String... aurl) {
int count;
long contentLength = <yourHttpEntity>.getContentLength();
InputStream input = new BufferedInputStream(<yourHttpEntity>.getContent());
OutputStream output = new FileOutputStream("/sdcard/your_photo.jpg");
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/contentLength));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
}
あなたのダイアログをonProgressUpdateで更新してください。
実際に[this](http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-)の著者にクレジットを与える必要があります。 progressdialog/3028660#3028660)答え。 – Wroclai
リンクを更新しました。どうも。 – Otra
ありがとう、少し仕事を取ったが、私はそれを得た! – FlyingStreudel