PRDownloader — 一个支持Android文件下载暂停和恢复的库
概述
- PRDownloader 可以用来下载任何类型的文件,如图像,视频,PDF,APK等。
- 这个库支持暂停和恢复下载文件。
- 支持大文件下载。
- 这个下载库只有一个简单的接口来请求下载。
- 我们可以通过下载ID检查下载状态。
- PRDownloader提供多个接口,支持回调OnStart、onProgress、OnCancel、OnError等各种情况。
- 支持适当的请求取消。
- 许多请求可以并行实现。
- 所有自定义设置都是可能的。
使用
1. 添加依赖
compile 'com.mindorks.android:prdownloader:0.2.0'
2. 添加权限
请不要忘记在清单中添加Internet权限
3. 在application 类oncreate()初始化方法
PRDownloader.initialize(getApplicationContext());
4. 初始化使用
// 即使在应用程序被杀死后启用数据库支持恢复
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setDatabaseEnabled(true)
.build();
PRDownloader.initialize(getApplicationContext(), config);
//为下载网络请求全局设置超时
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
.setReadTimeout(30_000)
.setConnectTimeout(30_000)
.build();
PRDownloader.initialize(getApplicationContext(), config);
5. 请求下载
int downloadId = PRDownloader.download(url, dirPath, fileName)
.build()
.setOnStartOrResumeListener(new OnStartOrResumeListener() {
@Override
public void onStartOrResume() {
}
})
.setOnPauseListener(new OnPauseListener() {
@Override
public void onPause() {
}
})
.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel() {
}
})
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
@Override
public void onError(Error error) {
}
});
6. 暂停下载
PRDownloader.pause(downloadId);
7. 重新下载
PRDownloader.resume(downloadId);
8. 取消下载
// 用下载ID取消
PRDownloader.cancel(downloadId);
// 可以将标记设置为任何请求,然后可用于取消请求。
PRDownloader.cancel(TAG);
// 取消所有请求
PRDownloader.cancelAll();
9. 下载状态
Status status = PRDownloader.getStatus(downloadId);
10. 如果数据库启用,则清除已恢复的文件
// Method to clean up temporary resumed files which is older than the given day
PRDownloader.cleanUp(days);