安卓文件下载库 | PRDownloader

名称 PRDownloader
语言 Android
平台 GitHub
作者 MindorksOpenSource
链接 点此进入

今天推荐的是一款具备完善功能的安卓文件下载库——PRDownloader 。

特点

  • 支持下载任意文件;

  • 支持暂停和恢复下载;

  • 支持下载大文件;

  • 使用简单;

  • 提供多个接口,支持回调开始下载、下载中,下载结束,出现错误各种情况;

  • 支持适当的下载请求取消;

  • 支持并行下载;

使用方法

  1. 添加依赖
compile 'com.mindorks.android:prdownloader:0.2.0'
  1. 添加权限
<uses-permission android:name="android.permission.INTERNET" />
  1. 在Application中初始化
PRDownloader.initialize(getApplicationContext());

// Enabling database for resume support even after the application is killed:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
                .setDatabaseEnabled(true)
                .build();
PRDownloader.initialize(getApplicationContext(), config);

// Setting timeout globally for the download network requests:
PRDownloaderConfig config = PRDownloaderConfig.newBuilder()
                .setReadTimeout(30_000)
                .setConnectTimeout(30_000)
                .build();
PRDownloader.initialize(getApplicationContext(), config);
  1. 请求下载文件
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) {

                            }
                        });
  1. 暂停下载
PRDownloader.pause(downloadId);
  1. 恢复下载
PRDownloader.resume(downloadId);
  1. 取消下载
// Cancel with the download id
PRDownloader.cancel(downloadId);
// The tag can be set to any request and then can be used to cancel the request
PRDownloader.cancel(TAG);
// Cancel all the requests
PRDownloader.cancelAll();
  1. 获取下载状态
Status status = PRDownloader.getStatus(downloadId);
  1. 清楚下载
PRDownloader.cleanUp(days);

更多使用方法请参考其GitHub。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,225评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,259评论 25 709
  • 结论是失败的,想把 7z.dll (Format7zF) 编译成静态库,结果是 7z.dll 中的很多对象需要注册...
    wyrover阅读 2,448评论 2 1
  • Dear my future wife: I'm your husband in some days or som...
    唐诗傅阅读 1,234评论 0 0
  • 近几日,乐视原董事长贾跃亭被刷爆朋友圈,曾经的风光无限,到如今身陷囹圄,背后太多的故事让世人去传说,在他最辉煌的时...
    跨界跑者阅读 144评论 0 0