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);