Android开源库:FileDownloader使用流程

项目引用

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工具获取存储根路径,在其上添加用于保存下载内容的文件夹,再在文件夹后添加对应文件即可获得存储路径。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
flutter_downloader是一个用于在Flutter应用程序中进行文件下载的插件。它提供了一种简单而强大的方式来管理和监控文件下载任务。 使用flutter_downloader,你可以轻松地添加文件下载功能到你的Flutter应用程序中。它支持多个平台,包括Android和iOS,并且提供了一组易于使用的API来管理下载任务。 要使用flutter_downloader,首先需要在你的Flutter项目中添加依赖。在pubspec.yaml文件中,添加以下内容: ``` dependencies: flutter_downloader: ^1.6.0 ``` 然后运行`flutter pub get`命令来获取依赖。 接下来,在你的代码中导入flutter_downloader包,并使用它来创建和管理下载任务。你可以使用`FlutterDownloader.enqueue`方法来创建一个下载任务,并传递下载链接、保存路径等参数。你还可以使用`FlutterDownloader.open`方法来打开已下载的文件。 以下是一个简单的示例代码,演示了如何使用flutter_downloader进行文件下载: ```dart import 'package:flutter/material.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('File Downloader'), ), body: Center( child: RaisedButton( child: Text('Download File'), onPressed: () { _startDownload(); }, ), ), ), ); } void _startDownload() async { String url = 'https://example.com/file.pdf'; String savedDir = '/storage/emulated/0/Download'; await FlutterDownloader.enqueue( url: url, savedDir: savedDir, showNotification: true, openFileFromNotification: true, ); } } ``` 这是一个简单的示例,当用户点击按钮时,会触发文件下载任务。下载的文件将保存在指定的目录中,并且会显示下载通知。用户可以通过通知来打开已下载的文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔幻音

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

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

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

打赏作者

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

抵扣说明:

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

余额充值