为了账号安全,请及时绑定邮箱和手机立即绑定

DownloadTask 里的mFinished 为什么是整个文件的进度?有点想不通

//累加完成进度 

mFinished += threadInfo.getFinished();

//开始下载

if (conn.getResponseCode() == HttpStatus.SC_PARTIAL_CONTENT) {

//读取数据

Log.i("DownloadTask", "getresponseconde success");

in = conn.getInputStream();

byte[] buffer = new byte[1024 * 4];

int length = 0;

long time = System.currentTimeMillis();

while ((length = in.read(buffer)) != -1) {

Log.i("DownloadTask", " while loop");

//写入文件

raf.write(buffer, 0, length);

//累加整个文件下载进度 ??????

mFinished += length;


正在回答

3 回答

那个length不就是下载的内容的长度么,通过下载内容的总长久可以确定下载的进度了么,没个下载的文件都有它的长度大小

0 回复 有任何疑惑可以回复我~
#1

JxLiew 提问者

非常感谢!
2015-12-08 回复 有任何疑惑可以回复我~

是可以的,但是会造成代码不安全,会造成输出的结果有误

0 回复 有任何疑惑可以回复我~

每个文件

0 回复 有任何疑惑可以回复我~
#1

JxLiew 提问者

想通了,没有留意到mFinished是DownloadTask的成员变量;还想问一下多个线程能同时对一个成员变量进行修改的吗
2015-12-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-Service系列之多线程断点续传下载
  • 参与学习       21819    人
  • 解答问题       54    个

本视频教程主要代领我们要学习的多线程续传下载程序的开发

进入课程

DownloadTask 里的mFinished 为什么是整个文件的进度?有点想不通

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信