|
|
|
# DownloadUtil
|
|
|
|
这是android 文件下载工具类,实现了多线程断点续传功能
|
|
|
|
|
|
|
|
#使用
|
|
|
|
```java
|
|
|
|
DownloadUtil mUtil;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 初始化下载工具类
|
|
|
|
*/
|
|
|
|
private void init(){
|
|
|
|
mUtil = new DownloadUtile();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 开始下载和恢复下载都是这个..
|
|
|
|
*/
|
|
|
|
private void download(){
|
|
|
|
mUtil.download(this, mDownloadUrl, Environment.getExternalStorageDirectory().getPath() + "/test.apk"
|
|
|
|
, new DownloadListener() {
|
|
|
|
long fileSize = 1;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onPreDownload(HttpURLConnection connection) {
|
|
|
|
super.onPreDownload(connection);
|
|
|
|
//在这里编写下载预处理操作
|
|
|
|
fileSize = connection.getContentLength();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onStart(long startLocation) {
|
|
|
|
super.onStart(startLocation);
|
|
|
|
//在这里编写开始后的相应操作
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onChildResume(long resumeLocation) {
|
|
|
|
super.onChildResume(resumeLocation);
|
|
|
|
//子线程恢复下载的位置回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onChildComplete(long finishLocation) {
|
|
|
|
super.onChildComplete(finishLocation);
|
|
|
|
//子线程完成下载的回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onProgress(long currentLocation) {
|
|
|
|
super.onProgress(currentLocation);
|
|
|
|
//下载总进度回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onStop(long stopLocation) {
|
|
|
|
super.onStop(stopLocation);
|
|
|
|
//停止下载的回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onCancel() {
|
|
|
|
super.onCancel();
|
|
|
|
//取消下载回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onResume(long resumeLocation) {
|
|
|
|
super.onResume(resumeLocation);
|
|
|
|
//恢复下载回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onFail() {
|
|
|
|
super.onFail();
|
|
|
|
//下载失败回调
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onComplete() {
|
|
|
|
super.onComplete();
|
|
|
|
//下载完成回调
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 停止下载
|
|
|
|
*/
|
|
|
|
private void stopDownload(){
|
|
|
|
if(mUtil != null){
|
|
|
|
mUtil.stopDownload();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 取消下载
|
|
|
|
*/
|
|
|
|
private void cancelDownload(){
|
|
|
|
if(mUtil != null){
|
|
|
|
mUtil.cancelDownload();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#示例
|
|
|
|
![例子图](https://github.com/AriaLyy/DownloadUtil/blob/master/img/11.gif "")
|
|
|
|
|
|
|
|
#下载
|