我的进度条每次都没有到达100%文件就已经下载完了,可是我设置的是500毫秒啊
weibo_南朝东_0
2016-03-28
4 回答
我是这样写的 只贴主要代码
while ((len = input.read(buffer)) != -1){
//写入文件
raf.write(buffer,0,len);
//累加整个文件的下载进度
finished += len;
//累加每个线程的下载进度
mThreadInfo.setFinished(mThreadInfo.getFinished() + len);
//发送广播给activity
intent.putExtra("finished",(int)(finished*1.0/fileinfo.getLength()*100));
intent.putExtra("id",fileinfo.getId());
mContext.sendBroadcast(intent);
//在下载暂停是把下载进度保存在数据库
if(isPause){
Log.e("11111","线程保存=="+mThreadInfo.getFinished());
mDAO.updateThread(mThreadInfo.getUrl(),mThreadInfo.getId(),mThreadInfo.getFinished());
return;
}
}
我并没有做500毫秒的限制 我会一直发 但是我再接受的时候做了判断 请看
if(DownLoadService.ACTION_UPDATE.equals(intent.getAction())){
int finished = intent.getIntExtra("finished",0);
if(progress != finished){
progress = finished;
mProgressH.setProgress(finished);
mProgressR.setProgress(finished);
}
}
定义个变量来比对穿过来的数值 不一样就更新进度条 并且把最新的进度赋值给我们定义的变量 等传过来的大于我们的变量就接着更新进度条 如此循环 完美解决举报
0/150
提交
取消