首页 > 技术文章 > 自己写个多任务多线程断点下载框架

stay 2014-05-04 17:40 原文

What: 什么是多任务下载框架?

多任务下载框架,是一个封装了下载功能的工具,它支持下载队列,下载进度更新,暂停||恢复||取消下载等功能。该框架适用于一切需要多任务下载的地方。例如app市场的app下载,视频app的视频下载,网易云阅读的离线下载等等。

Why:为什么要写多任务下载框架?它解决了什么场景下的问题?

刚才提到了很多不同下载的场景,除了下载的数据不同,其他功能都是一样的。所以我们需要抽出来做为一个单独的工具,以后我们只需要调用这个工具就可以了。不需要在烦恼了哦。还有就是,高内聚,所有下载相关的功能都封装到一起,可读性高,便于以后维护和扩展。

为什么我讲了HTTP框架还要来讲多任务下载框架?

这里使用的场景是不同的,千万不要企图把框架变得万能,框架只是针对某一特定场景而封装出来解决这类问题的工具,HTTP框架着重于常规API请求,并针对返回数据去做相应的处理。而多任务下载框架仅针对多任务下载做的一系列封装,目的就是为了下载。这两个框架没有太多的交集。所以拆开来比较好。而且不是所有app都需要多任务下载框架。

How:怎么写多任务下载框架?有什么需要注意的?

怎么写就看视频把,这里先预热下写之前需要知道的知识点:

1。观察者模式(下载进度需要实时更新,暂停||恢复||取消下载状态的通知等,而且不仅仅是更新当前Activity,所以这里要用到观察者模式)

2。多线程断点下载(要想下载的快,并且可以恢复暂停的下载当然要支持断点了)

3。线程池队列(一般在设置里都有”同时下载最大任务数”,所以是个任务队列,并且多任务并存,这里线程池是必备的)

4。数据库(既然支持断点下载,那么就需要记录当前下载的点以备恢复下载时使用)

 

上述提到了一些知识点,虽然在课程里我也会讲,但是大家还是得对这些东西有个概念,我不会讲得太细。

该系列是针对中级Android开发者量身定做课程,作为升职加薪的必备工具,不同于市面上那些只是教你调用API的初级视频。这套课程,有深度有广度,为确保大家能学以至用,大家可以加本人QQ:104816053。也可以访问我的网站www.stay4it.com获取更多技术分享。更多心得请关注微信公众平台:stay4it

课程地址:http://www.stay4it.com/course/6

推荐阅读