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

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

XRay_Chen 移动开发工程师
难度中级
时长 1小时32分
学习人数
综合评分9.83
28人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.7 逻辑清晰
3、使用通知栏显示进度条
4、使用其它方式实现线程通信(handler)
这两个,好像没有讲到呢
有同学说的很对,在view复用的时候,不仅显示会错乱,下载也会错乱。所以文章最后把设置文件名和按钮的操作放在第一次实例化的括号里是不可取的。
这个人讲的逻辑好乱啊
直接fileInfo.getName()不就可以获取了吗,怎么还要从List中获取
加上hyman的万能适配器,太方便了
我想问下真正的多线程下载,怎么做好?这种当前应用没问题,后台下载呢?
源码下载:
github: https://github.com/103style/Download.
csdn: http://download.csdn.net/download/lxk_1993/9511182
说几个注意点和改进点
生成list的 mFileList的时候 注意添加的fileinfo id要和position一致 不然会错乱(这点不太好 比如加入删除任务功能后会比较麻烦)
下载 停止按钮注意不能多次点击 可以在代码中进行限制
退出aty时 线程仍然会下载一段时间且不会保存 可以在service的ondestory方法中对map mtasks遍历 改ispaused为true
删除未完成下载文件后 数据库中未删除,会导致下载不完整 。可以在service中初始化时判断文件是否存在
确实有难度
感谢感谢,比51强
listview建议用局部更新,就是在downloadTask里写一个handler,调用getter,setter方法,然后再listviewadapter里new handler并通过sethandler()传过去,然后再下载的进度与id通过handler发送过去,然后进行局部更新,还有很多小伙伴反应,下载进度不对,我用的也是老师的百分比方法,发现最后会变成负数,于是我就把每次获取到的length传递回去,通过holder.mypp.incrementProgressBy(length);可以正确显示进度条,最后建议大家学完这个还是去看看框架吧,做起来相对简单一点
这样下载一点就刷新整个listview会不会太浪费了啊。。。。
老师的逻辑好强,2课 我看了整整两天才捋清思路
讲得很详细,赞!!
课程须知
适合有一定Android开发基础的同学,要求学生能够有很强的java中多线程以及线程池的基础,灵活使用service和多线程结合实现断点续传功能。
老师告诉你能学到什么?
Activity和Service的通信方法 ListView和BaseAdapter的使用 数据库操作 多线程分段下载的原理 线程池的使用 线程同步的应用 单例模式的应用 Notification的使用 Messenger的使用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消