推荐一个开源文件下载库PRDownloader

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


github传送门



猜你喜欢

转载自blog.csdn.net/qq_25486413/article/details/79802733