我是通过以下方式下载的,它的工作fine.But想要检查每个块是在什么时候到来的。
文件文件=新的File(extStorageDirectory+"/"+runInBackend.count+sche.file_name);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setConnectTimeout(sche.TimeOut);
connection.setRequestMethod("POST");
String status = connection.getHeaderField(0);//getResponseMessage();
if(status != null && status.contains("200"))
{
InputStream is = connection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
long totalBytesRead = 0;
while ((current = bis.read()) != -1)
{
baf.append((byte) current);
totalBytesRead ++;
}
FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();有没有办法检查任何fie的下载进度,也就是每个区块到达的时间。
救命啊...
谢谢
发布于 2011-04-08 10:03:51
您可能应该将下载内容移动到后台线程中,例如,使用AsyncTask。
当您获得初始响应时,您可以取出content-length标头,以跟踪您已经下载了多远的内容。如果你想生成一个ETA,你总是可以用System.currentTimeMillis或者Date得到当前的时间。
希望这能帮上忙
菲尔·莱洛
https://stackoverflow.com/questions/5589527
复制相似问题