• 第三方下载控件 用起来还是不错的偶!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

  • 相关阅读:
    交互设计实用指南系列(10)—别让我思考
    交互设计实用指南系列11-减少记忆负担
    交互设计实用指南系列(12)—避免出错
    复杂产品的响应式设计【流程篇】
    JS/jQuery判断DOM节点是否存在
    jquery.validate手册 (5)
    jquery.validate手册 (4)
    jquery.validate手册 (3)
    jquery.validate手册 (2)
    Java零基础学习(二)自定义类型及基本语法
  • 原文地址:https://www.cnblogs.com/rocksmall/p/8086032.html
Copyright © 2020-2023  润新知