本文主要介绍开源项目Aria的使用。

先在项目里的build 中配置
compile 'com.arialyy.aria:Aria:3.1.1' //下载 开始下载
Aria.download(this)
.load(DOWNLOAD_URL)//下载的url地址
.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")//下载保存的路径
.start();
暂停下载
Aria.download(this).load(DOWNLOAD_URL).pause();

取消下载
Aria.download(this).load(DOWNLOAD_URL).cancel();
在Aria的下载模块中,下载链接为下载任务的唯一标识符,控制一个任务的开始、暂停、恢复、取消下载等操作都需要DOWNLOAD_URL支持。
另外,在Aira中,可以调用start()方法开始下载或恢复下载。
为了方便起见,你也可以调用Aria.download(this).load(DOWNLOAD_URL).resume();实现恢复下载。

下载事件的获取

在上文中,我们已经实现在android中下载文件的操作,是的,使用Aria,一行代码你就能实现复杂的断点续传功能。
除了正常的文件需求外,有的时候,我们还需要获取文件的下载状态用来更新界面的显示。
Aria中,使用Aria的事件监听器,你能很容易的获取到你想要的很多事件,如:

    • 暂停、恢复、完成、失败、取消下载等状态
    • 一句代码获取当前任务的下载速度
    • 一句代码获取当前任务的进度的百分比
    • 一句代码获取当前任务的的文件大小

监听事件
Aria.download(getApplication()).addSchedulerListener(new MySchedulerListener());//给Aria设置监听事件
private class MySchedulerListener extends Aria.DownloadSchedulerListener {

  @Override public void onTaskStart(DownloadTask task) {
mSize.setText(task.getConvertFileSize());
} @Override public void onTaskStop(DownloadTask task) {
Toast.makeText(MainActivity.this, "停止下载", Toast.LENGTH_SHORT).show();
} @Override public void onTaskCancel(DownloadTask task) {
Toast.makeText(MainActivity.this, "取消下载", Toast.LENGTH_SHORT).show();
} @Override public void onTaskFail(DownloadTask task) {
Toast.makeText(MainActivity.this, "下载失败", Toast.LENGTH_SHORT).show();
} @Override public void onTaskComplete(DownloadTask task) {
Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
} @Override public void onTaskRunning(DownloadTask task) {
//使用转换单位后的速度,需要在aria_config.xml配置文件中将单位转换开关打开
//https://github.com/AriaLyy/Aria#配置文件设置参数
mSpeed.setText(task.getConvertSpeed());
mPb.setProgress(task.getPercent());
}
}
最后 附上 Github地址:https://github.com/AriaLyy/Aria

最新文章

  1. Android 裁剪图片为圆形图片
  2. 【代码笔记】iOS-仿QQ空间,歌曲播放
  3. Node.js GET/POST请求
  4. Linux free命令详解(转)
  5. 【Unity】13.3 Realtime GI示例
  6. 【转载】最近在用Arrays的asList()生成的List时,List元素的个数时而不正确,数组转化为List,即Arrays.asList(intArray);
  7. 网易云音乐 歌词制作软件 BesLyric
  8. UIView之常用属性
  9. iScroll 4,把禁掉的:active样式还给我~
  10. SWOT分析是神马?
  11. Postgres数据库在Linux中的I/O优化
  12. 给xcode项目修改名字
  13. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
  14. 【Luogu4630】【APIO2018】 Duathlon 铁人两项 (圆方树)
  15. ELK 集群升级操作
  16. 未能加载文件或程序集"CheckRegister"或它的某一个依赖项.参数错误. (异常来
  17. mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的
  18. 在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度<转>
  19. OLTP和OLAP有何区别?
  20. Git详解之Git分支

热门文章

  1. 常用的一些 linux 指令
  2. 《DSP using MATLAB》Problem 9.2
  3. BAT大神推荐:看懂英文文档,每天只需要10分钟做这件事……
  4. java-day14
  5. 通过Python SDK 获取tushare数据
  6. Python3中string内置参数
  7. uoj118 【UR #8】赴京赶考
  8. HIVE文件
  9. verifier 调试内存泄露
  10. Ubuntu18.04安装RTX2080Ti+NVIDIA驱动+CUDA