最近项目遇到大文件的下载,而且需要做的和优酷移动端缓存视频的那种效果差不多,考虑到项目周期自己写的话可能会浪费一点时间,所以git上找了找发现okgo这个东西挺不错的。话不多说先给大家看一下效果图。
https://github.com/jeasonlzy/okhttp-OkGo这个是大牛写的demo的地址,有兴趣的可以看看。
现在简要说一说okgo的用法,okgo里有好几种jar包,我们需要的只是okgo.jar和okservice.jar。
final DownloadManager manger= DownloadService.getDownloadManager();----获取下载管理器,我们所要进行的任务,以及一些下载的配置都要通过这个管理器来进行操作。
manger.setTargetFolder(Environment.getExternalStorageDirectory().getAbsolutePath());---设置文件下载保存的路径,(别忘了加读写权限)
manger.getThreadPool().setCorePoolSize(9);---设置线程数,也就是设置最多同时下载的个数。
manger.removeAllTask();---移除所有下载任务(这个方法比较重要,因为在你下载完成之后,如果不调用此方法,okgo里的数据库是不会把之前的下载记录清空掉的)
manager.addTask(String url,GetRequest request,DownloadListener listener);----添加一个下载任务,注意里面的就几个参数(1参是下载的链接而且也是一格标识,二参是下载的配置一会给大家看看二参如何写,三参是回调接口),
添加下载任务中二参的配置,添加下载的时候只需把request 对象传进去就行
GetRequest request = OkGo.get(url))//
.headers("headerKey1", "headerValue1")//
.headers("headerKey2", "headerValue2")//
.params("paramKey1", "paramValue1")//
.params("paramKey2", "paramValue2");
到此下载最基本的操作
Manager.pauseAllTask();---暂停所有下载
Manager.stopAllTask();----停止所有下载
Manager.startAllTask();---开始所有下载
大概需要的方法就这么多,具体的demo看刚才给出的链接