第三方下载控件 用起来还是不错的偶!Aria


本文主要介绍开源项目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

posted @ 2017-12-22 14:57  RockSmall  阅读(1398)  评论(0编辑  收藏  举报