Android开源库:FileDownloader使用流程

本文详细介绍了如何在Android应用中使用FileDownloader库进行文件的全局初始化、单任务及多任务下载,并提供了文件存储路径的生成方法。通过设置监听器、任务队列、下载形式等,实现下载任务的串行或并行执行,以及异常重试等机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目引用

implementation 'com.liulishuo.filedownloader:library:1.7.7'

全局初始化

在Applicaiton的onCreate中进行初始化,调用对应FileDownloader.setupOnApplicationOnCreate(application)(需要自定义属性)或FileDownloader.setup(Context)即可。

任务启动

单任务

FileDownloader.getImpl().create(url)
        .setPath(path)
        .setListener(new FileDownloadListener(){
        }).start();

获取下载实例后,传入下载所用url路径,下载到的本地路径path,设置好下载监听器(下载完成、错误时的反馈),直接start启动即可。

多任务

①定义监听器
和上述单任务相同,需要创建好监听器

②创建下载任务队列

final FileDownloadQueueSet queueSet = new FileDownloadQueueSet(downloadListener);

创建时需要传入创建好的监听器

③创建任务路径集合

final List<BaseDownloadTask> tasks = new ArrayList<>();
for (int i = 0; i < count; i++) {
     tasks.add(FileDownloader.getImpl().create(Constant.URLS[i]).setTag(i + 1));
}

和单任务创建相似,FileDownloader.getImpl().create创建出下载任务,由List进行存储

④下载前的设置工作

queueSet.disableCallbackProgressTimes();

设置不需要关心每个任务的Progress监听,只用关心任务是否完成即可。

queueSet.setAutoRetryTimes(3);

设置失败后尝试次数。

⑤设置下载形式

if (serial) {
  // 串行执行该任务队列
     queueSet.downloadSequentially(tasks);
}

if (parallel) {
  // 并行执行该任务队列
   queueSet.downloadTogether(tasks);
}

设置下载是串行还是并行发生。

⑥下载启动

queueSet.start()

最后用start启动即可

文件存储路径生成

   fun getDownloadPath(file: String): String {
       val dir = File(FileDownloadUtils.getDefaultSaveRootPath() + File.separator + "dir")
       if (!dir.exists()) {
           dir.mkdir()
       }
       return  fileSchool.absolutePath + File.separator + file
   }

借助FileDownloader自带的FileDownloadUtils工具获取存储根路径,在其上添加用于保存下载内容的文件夹,再在文件夹后添加对应文件即可获得存储路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔幻音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值