我们的App中可能会提供给用户下载文件或者图片的场景,然后你可能就会考虑以下名词了

多任务下载
多线程下载
断点续传
高并发

没错,如果你自己手写下载库的话需要考虑这四个名词,接下来我们学习一下FileDownloader库,该库的作者对这四点已经封装的很好了,5000人Star的开源库你怎可错过呢?

老规矩,引用别人的库的时候一定要放别人的github地址
FileDownloader Github地址

1 引用导入

compile 'com.liulishuo.filedownloader:library:1.6.4'//最新版本见github

2 全局初始化


public class APP extends Application {@Overridepublic void onCreate() {super.onCreate();FileDownloader.setup(this);//注意作者已经不建议使用init方法}
}

3 具体调用

注意这里的path是文件名而不是文件夹的名字

注意这里的path是文件名而不是文件夹的名字

注意这里的path是文件名而不是文件夹的名字

 FileDownloader.getImpl().create(url).setWifiRequired(true).setPath(path).setListener(new FileDownloadListener() {@Overrideprotected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {}@Overrideprotected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {int percent=(int) ((double) soFarBytes / (double) totalBytes * 100);textView.setText("("+percent+"%"+")");}@Overrideprotected void blockComplete(BaseDownloadTask task) {}@Overrideprotected void completed(BaseDownloadTask task) {Toast.makeText(MainActivity.this,"下载完成!",Toast.LENGTH_SHORT).show();textView.setText("("+"100%"+")");}@Overrideprotected void paused(BaseDownloadTask task, int soFarBytes, int totalBytes) {}@Overrideprotected void error(BaseDownloadTask task, Throwable e) {}@Overrideprotected void warn(BaseDownloadTask task) {continueDownLoad(task);//如果存在了相同的任务,那么就继续下载}}).start();
 private void continueDownLoad(BaseDownloadTask task) {while (task.getSmallFileSoFarBytes()!=task.getSmallFileTotalBytes()){int percent=(int) ((double) task.getSmallFileSoFarBytes() / (double) task.getSmallFileTotalBytes() * 100);textView.setText("("+percent+"%"+")");}}

没错,就是这么简单好用!这个库远比我的demo要强大,我只是展示了他的基础用法,如果用户有自己特殊的需求还请移步到github上仔细阅读源码哈~

Android高能下载库FileDownloader相关推荐

  1. Android Studio 下载第三方库失败

    Android Studio下载第三方库失败 网上其他教程相对较老,而且我用的Android Studio的版本为2021,目录结构不太一致. 按网上的其他教程来看,按以下方法就可以解决问题. 但我的 ...

  2. Android图片下载缓存库picasso解析

    picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能. picasso使用简单,如下 P ...

  3. android 多线程下载,断点续传,线程池

    android 多线程下载,断点续传,线程池 你可以在这里看到这个demo的源码: https://github.com/onlynight/MultiThreadDownloader 效果图 这张效 ...

  4. android如何编译lame,Android 编译 Lame 库心路历程

    编译脚本 lame 版本 下载完成后 编译 生成 include lib 两个文件夹 直接拷贝到 lib 目录下 集成 然后 CMakeList 里面添加头文件路径 不做这一步 后面无法在 C++文件 ...

  5. android 三方_面试官送你一份Android热门三方库源码面试宝典及学习笔记

    前言 众所周知,优秀源码的阅读与理解是最能提升自身功力的途径,如果想要成为一名优秀的Android工程师,那么Android中优秀三方库源码的分析和理解则是必备技能.就拿比较热门的图片加载框架Glid ...

  6. 从源码分析Android的Glide库的图片加载流程及特点

    转载:http://m.aspku.com/view-141093.html 这篇文章主要介绍了从源码分析Android的Glide库的图片加载流程及特点,Glide库是Android下一款人气很高的 ...

  7. 浅谈Android视频缓存库

    背景 我们都了解播放器的作用就是把音视频压缩数据转换成原始的音视频数据渲染出来,这样我们就可以看到画面.听到声音了.这里的播放器就存在两个问题,第一个问题是视频源存在云端,我们每次看完视频之后重新观看 ...

  8. Android AOSP 下载和编译

    Android AOSP 下载和编译 欢迎入群交流 环境 链接: https://source.android.google.cn/docs/setup/build/initializing?hl=z ...

  9. Android编译Skia库

    Android编译Skia库 本文档提供两种方法编译Skia库 使用aosp源码进行编译 使用skia源码进行编译 两种编译方法都可以编译,并且都可以使用在多个平台中,且可以使用在不同Android版 ...

  10. Unity3d调用Android版so库

    C源码封装Android版函数库 工具介绍 需要Android NDK工具包,下载地址为: https://developer.android.google.cn/ndk/downloads/inde ...

最新文章

  1. exist not exist 分析
  2. 可爱的特殊字符集收集
  3. 平流式沉淀池计算例题_平流式沉淀池计算例题
  4. Python Django 事务管理
  5. python导出数据找不到csv_找不到Python/CSV文件
  6. [转]MVC中如何使用RDLC报表
  7. java学习——equals()和==的比较
  8. Matplotlib作业一
  9. 第E题 转换任意进制 (java方法直接解)==输入一个十进制数N,将它转换成R进制数输出
  10. 惠普服务器硬件检测软件吗,惠普硬件检测工具DST HP PC Hardware Diagnostics UEFI 6.8.0.0 Rev.A 使用方法...
  11. ios 基础知识点总结
  12. 研发进阶之项目管理(附腾讯内部满分项目管理PPT)
  13. Chrome插件开发教程
  14. linux u盘插上去 桌面跳出一个cd,U盘启动CDlinux
  15. h5 神策埋点_神策埋点
  16. vux以插件方式调用
  17. 关于AMD64和arm64、x86和x86_64的介绍
  18. 吴式太极大师修丕勋简介
  19. DINE: Domain Adaptation from Single and Multiple Black-box Predictors
  20. 数据采集和用户留存分析

热门文章

  1. 马哥教育42期第三周作业
  2. 摄像机高精度标定的一些方法
  3. 关于VSCode编码:自动猜测编码字符集
  4. Day2-Python基础2---列表、元组操作
  5. c++保留有效位和小数位
  6. 计算机进到系统闪屏没有桌面,Win10重装系统后电脑出现闪屏桌面解决?
  7. Using RCU‘s CPU Stall Detector(待更新)
  8. graphs菜单_spss菜单栏中英文对照.ppt
  9. Cesium离线地图极简教程
  10. python 存根_python - 内联类型注释与存根会导致不同的mypy行为 - SO中文参考 - www.soinside.com...