gpt4 book ai didi

android - HttpEntity.getContent() 进度指示器?

转载 作者:行者123 更新时间:2023-11-29 00:45:09 27 4
gpt4 key购买 nike

在 android API 7+ 中有什么方法可以报告对 HttpEntity.getContent() 的调用进度?

在我的例子中,我在响应流中获取图像,因此传输可能需要相当长的时间。我想要一个样式设置为 STYLE_HORIZONTALProgressDialog 随传输进度更新。

有什么办法吗?

谢谢!

最佳答案

您是否尝试过 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 中更新您的对话框。

关于android - HttpEntity.getContent() 进度指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com