源码下载:
github: https://github.com/103style/Download.
csdn: http://download.csdn.net/download/lxk_1993/9511182
github: https://github.com/103style/Download.
csdn: http://download.csdn.net/download/lxk_1993/9511182
2016-05-05
说几个注意点和改进点
生成list的 mFileList的时候 注意添加的fileinfo id要和position一致 不然会错乱(这点不太好 比如加入删除任务功能后会比较麻烦)
下载 停止按钮注意不能多次点击 可以在代码中进行限制
退出aty时 线程仍然会下载一段时间且不会保存 可以在service的ondestory方法中对map mtasks遍历 改ispaused为true
删除未完成下载文件后 数据库中未删除,会导致下载不完整 。可以在service中初始化时判断文件是否存在
生成list的 mFileList的时候 注意添加的fileinfo id要和position一致 不然会错乱(这点不太好 比如加入删除任务功能后会比较麻烦)
下载 停止按钮注意不能多次点击 可以在代码中进行限制
退出aty时 线程仍然会下载一段时间且不会保存 可以在service的ondestory方法中对map mtasks遍历 改ispaused为true
删除未完成下载文件后 数据库中未删除,会导致下载不完整 。可以在service中初始化时判断文件是否存在
2016-04-09
最新回答 / 依然丶丶丶
如果服务已经存在,再次开启服务是不会创建新的实例的,只会调用onStartCommand方法,(视频中是继续下载),当我们完成一个完整的动作或任务后是可以停止服务的,以为此时服务已经没有存在的意义,当我们有新的任务可以重新开启一个。服务是Android四大组件之一,和activity是等级的,通俗点说,服务就是没有UI界面的activity,如果服务里没有代码在运行,服务开着也是没有什么开销的,几乎可以忽略不计。
2016-03-29
listview建议用局部更新,就是在downloadTask里写一个handler,调用getter,setter方法,然后再listviewadapter里new handler并通过sethandler()传过去,然后再下载的进度与id通过handler发送过去,然后进行局部更新,还有很多小伙伴反应,下载进度不对,我用的也是老师的百分比方法,发现最后会变成负数,于是我就把每次获取到的length传递回去,通过holder.mypp.incrementProgressBy(length);可以正确显示进度条,最后建议大家学完这个还是去看看框架吧,做起来相对简单一点
2016-03-17
最新回答 / 趟水过河
demo中进度值的设定有两个: 文件的下载进度 和 当前线程的下载进度, 通过广播发送的是文件的下载进度值,单个线程的进度值是用来记录此线程的下载断点的。 每个线程是都会发送广播的,毕竟每个线程的更新,都表示着文件的下载进度的更新。
2016-03-09