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

Android-Service系列之多线程断点续传下载

XRay_Chen 移动开发工程师
难度中级
时长 1小时32分
学习人数
综合评分9.83
28人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.7 逻辑清晰
那个getAllThread查询没问题是因为在任务开始之前执行,不涉及多线程,不过那个isExists是在任务开始后执行的,会出现查询时Cursor被其他线程关闭的问题
这个太好了,谢谢,早看到就好了。
这样改getview代码是不对的吧。。滑动一下数据就乱了
非常感谢老师!给你36个赞!!!!
这个老师大赞
getReadableDataBase与getWritableDatabase效果是一样的,用不着修改
这个懒汉模式也不是绝对线程安全啊。。
取文件名直接fileInfo.getFileName() 就好了。。。
试试这个:
System.out.println("线程" + mThreadInfo.getId() + //
": 总完成度=" + mFinised * 100 / mFileInfo.getLength() + "%,"//
+ "本线程完成度="
+ mThreadInfo.getFinished() * 100 / (mThreadInfo.getEnd() - mThreadInfo.getStart()));
有个地方应该这样子才对,忘记那一节课了,,,
// 累加每个线程的下载进度
mThreadInfo.setFinished(mThreadInfo.getStart()+mThreadInfo.getFinished() + len);
好 学习学习
关于线程的控制了解了 ,谢谢老师!!
进度条不正确,是因为计算百分比的时候,因为文件长度太长,而教程里面用的是int类型,超过了int类型的最大值,所以变成负数了.推荐下载都用long类型.
我的GitHub地址:https://github.com/Ericlsd/DownloadDemo,欢迎大家交流。
更新了如下问题:
No1.修改ThreadDAOImpl单例模式调用,解决暂停下载时进度写入数据库操作连接失败的问题。
No2.追加文件信息的数据库,保存已下载文件,避免重复下载。
仍在完善中,发现问题会及时更新和修正,欢迎大家一起交流学习。
逻辑有够乱的。。(/ □ \)
课程须知
适合有一定Android开发基础的同学,要求学生能够有很强的java中多线程以及线程池的基础,灵活使用service和多线程结合实现断点续传功能。
老师告诉你能学到什么?
Activity和Service的通信方法 ListView和BaseAdapter的使用 数据库操作 多线程分段下载的原理 线程池的使用 线程同步的应用 单例模式的应用 Notification的使用 Messenger的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消