长度在进度条中显示减号
Posted
技术标签:
【中文标题】长度在进度条中显示减号【英文标题】:length shows minus in progress bar 【发布时间】:2019-11-18 14:20:10 【问题描述】:我正在从 URL 下载视频,当我试图获取进度时它显示负值,在下面我添加了我的代码,
byte[] buffer = new byte[1024];
int len1 = 0;
long total = 0;
while ((len1 = is.read(buffer)) != -1)
if (cancelDialogStatus)
break;
Log.e("System out", "doInBackground: progress:::" + len1);
total += len1;
// publishing the progress....
// After this onProgressUpdate will be called
int prg = (int) ((total * 100) / lenghtOfFile);
Log.d("System out", "doInBackground: progress:::" + prg);
if (prg > 100)
publishProgress(""
+ 100);
fos.write(buffer, 0, len1);
break;
else
publishProgress(""
+ (int) ((total * 100) / lenghtOfFile));
fos.write(buffer, 0, len1);
【问题讨论】:
你是如何获得 lenghtOfFile 的? HttpURLConnection con = null;试试 downloadTimeStr = ""; URL url = 新 URL("url") url.openConnection(); con.setRequestMethod("GET"); con.setConnectTimeout(Constants.STANDARD_TIMEOUT); // con.setDoOutput(true);试试 con.connect(); catch (Exception ex) //ex.printStackTrace(); long lenghtOfFile = con.getContentLength(); 你有没有经过this solution这基本上是由于服务器没有设置header参数。就像您从 gdrive 下载时一样,在下载过程中它不会显示总文件大小。 好的,非常感谢...您解决了我的问题 你的文件长度是-1 【参考方案1】:这基本上是由于服务器没有设置Content-Length
标头参数。就像您从 Gdrive 下载时一样,在下载过程中它不会显示总文件大小。
简单的答案是内容长度未知。或者更具体地说,服务器没有在响应消息中设置 Content-Length 标头。
详细解决办法described here.
【讨论】:
以上是关于长度在进度条中显示减号的主要内容,如果未能解决你的问题,请参考以下文章
获取 ASP.NET GridView 单元格值并在 JQuery 进度条中显示
从android中的sql server下载表格行时显示进度条