android多线程断点续传下载,android多线程,最近在研究下载文件的断点
android多线程断点续传下载,android多线程,最近在研究下载文件的断点
最近在研究下载文件的断点续传,主要是能够记录下载位置,退出应用下次再进来的时候也能从当前的位置开始下载,代码为多线程+数据库,代码能够正常运行,但是我在开发的过程中遇到了几个问题,有的没找到解决方案,分享出来,希望有的大神能够指点一下:
1.使用HttpURLConnection 获取文件大小的时候,速度在4.x手机上非常慢,但是找了许多中文网站上的代码基本都没有解决,后来 google一下,发现添加conn.setRequestMethod("HEAD")就可以了,获取包头就可以了,这样 conn.disconnect()关闭连接就能够快很多了
2.同样的使用HttpURLConnection下载,用户暂停下载或者下载完成conn.disconnect()的调用有时候会花费十几秒的时间, 这个找了很久,4.X的bug,解决方法有,但是挺麻烦的,google一下就能找到,我也去参考了其他软件的断点续传,发现也有这问题,不知道有没有方 便一点的解决方法,望大神解答
3.RandomAccessFile的多线程低效率问题,看网上说在低配置手机上RandomAccessFile的效率低,网络支持3M/s的下载,但是读写速度最多只有1M/s,那么不管网速多快,下载速度就是1M/s,不知道能不能找到一个代替的方案4.非常偶现的情况,下载一个超过100M的文件,有时候会莫名其妙的下载到90多M,下载线程HttpURLConnection就自动关闭了链接,但是我只是偶现了一两次,不知道是不是我代码的问题,估计是吧
代码我贴出来吧,主体就是一个类,附加一个数据库类,主要是线程之间的交互吧,有一个开始线程,主要功能是当数据库中没有该下载文件信息的时候去创建,如果有,就去数据库中获取,并且开始数个下载线程开始下载文件;当用户暂停的时候会启动停止线程去结束开始线程(如果没有执行完成)和下载线程,这时候第2个问题就会出现,关闭下载线程时,4.x的手机关闭http连接的速度慢的惊人RandomAccessFile类javaNone
戳我下载GitHub整个项目下载,小弟不才写的一个android 框架,里面也有相关代码
用户点评