From 2b5979ea85b7d31a01aa300d088d82c566d915e6 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:19:42 +0800 Subject: [PATCH 1/9] Update README.md --- README.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 877197db..c06f5420 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Aria项目源于15年工作中遇到的一个文件下载管理的需求,当 Aria有以下特点: + 简单、方便 - - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) - - [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数) - - [一句代码加可以获取当前的下载速度](#其它好用的API) - - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 + - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 + - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) + - [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数) + - [一句代码加可以获取当前的下载速度](#其它好用的API) + - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + 支持https地址下载 - - 在配置文件中很容易就可以设置CA证书的信息 + - 在配置文件中很容易就可以设置CA证书的信息 + 支持300、301、302重定向下载链接下载 + 支持上传操作 @@ -203,6 +203,14 @@ Aria.download(this).removeAllTask(); long speed = task.getSpeed(); } ``` +* 获取下载的文件大小 +同样的,你也可以在DownloadTask对象中获取下载的文件大小 +``` +@Override public void onTaskRunning(DownloadTask task) { +  //获取文件大小 + long fileSize = task.getFileSize(); +} +``` **tips:为了防止内存泄露的情况,事件类需要使用staic进行修饰** @@ -238,7 +246,7 @@ Aria.download(this).removeAllTask(); *** ## 后续版本开发规划 -* 实现上传队列调度功能 +* ~~实现上传队列调度功能~~ ## 开发日志 + v_3.1.0 添加Aria配置文件,优化代码 From ac329c2342fd4decf21c35fbcea4e4284fd1e403 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:29:50 +0800 Subject: [PATCH 2/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c06f5420..75f86790 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Aria有以下特点: - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) - - [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数) + - [一句代码就可以动态设置最大下载数](#示例) - [一句代码加可以获取当前的下载速度](#其它好用的API) - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + 支持https地址下载 From a64983a64efdca721b2459d153395f27f5510999 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:31:21 +0800 Subject: [PATCH 3/9] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 75f86790..ba075117 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Aria有以下特点: - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) - - [一句代码就可以动态设置最大下载数](#示例) +   - [一句代码就可以动态设置最大下载数](#代码) - [一句代码加可以获取当前的下载速度](#其它好用的API) - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + 支持https地址下载 @@ -172,7 +172,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' ``` -#### 通过代码修改Aria参数 +#### 代码 除了文件方式外修改Aria参数外,同样的,你也可以在代码中动态修改Aria参数
通过`Aria.get(this).getDownloadConfig()`或`Aria.get(this).getUploadConfig()`直接获取配置文件,然后修改参数
如以下所示: From 838e57c57a5ce938074851050a562cbf96360411 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:33:01 +0800 Subject: [PATCH 4/9] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba075117..1acd798a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Aria有以下特点: - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) -   - [一句代码就可以动态设置最大下载数](#代码) +   - [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数) - [一句代码加可以获取当前的下载速度](#其它好用的API) - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + 支持https地址下载 @@ -172,7 +172,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' ``` -#### 代码 +#### 通过代码修改Aria参数 除了文件方式外修改Aria参数外,同样的,你也可以在代码中动态修改Aria参数
通过`Aria.get(this).getDownloadConfig()`或`Aria.get(this).getUploadConfig()`直接获取配置文件,然后修改参数
如以下所示: From 93768cf2c29bfe8b267cd6de7ca3b36b81c260e1 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:38:24 +0800 Subject: [PATCH 5/9] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1acd798a..c52bc007 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Aria有以下特点: - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) -   - [一句代码就可以动态设置最大下载数](#通过代码修改Aria参数) +   - [一句代码就可以动态设置最大下载数](#代码中设置参数) - [一句代码加可以获取当前的下载速度](#其它好用的API) - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + 支持https地址下载 @@ -111,7 +111,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' ``` ### 三、Aria参数配置 -#### 通过文件修改Aria配置参数 +#### 配置文件设置参数 创建`aria_config.xml`文件,将其放在`assets`目录下,添加以下内容 ```xml @@ -172,7 +172,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' ``` -#### 通过代码修改Aria参数 +#### 代码中设置参数 除了文件方式外修改Aria参数外,同样的,你也可以在代码中动态修改Aria参数
通过`Aria.get(this).getDownloadConfig()`或`Aria.get(this).getUploadConfig()`直接获取配置文件,然后修改参数
如以下所示: From e5aa798df5061f0a5b0f0dcce73008aad4cb0656 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Tue, 23 May 2017 22:42:23 +0800 Subject: [PATCH 6/9] Update README.md --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c52bc007..367a50d1 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ Aria有以下特点: + 简单、方便 - 可以在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用 - 支持任务自动调度,使用者不需要关心任务状态切换的逻辑 - - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#二、下载状态获取) -   - [一句代码就可以动态设置最大下载数](#代码中设置参数) - - [一句代码加可以获取当前的下载速度](#其它好用的API) - - [通过修改配置文件很容易就能修改下载线程数](#通过文件修改Aria配置参数) + - [通过Aria的事件,能很容易获取当前下载任务的下载状态](#下载状态获取) + - [一句代码加可以获取当前的下载速度](#常用接口) + - [一句代码就可以动态设置最大下载数](#代码中设置参数) + - [通过修改配置文件很容易就能修改下载线程数](#配置文件设置参数) + 支持https地址下载 - 在配置文件中很容易就可以设置CA证书的信息 + 支持300、301、302重定向下载链接下载 @@ -77,7 +77,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' Aria.download(this).load(DOWNLOAD_URL).cancel(); ``` -### 二、下载状态获取 +### 下载状态获取 如果你希望读取下载进度或下载信息,那么你需要创建事件类,并在onResume(Activity、Fragment)或构造函数(Dialog、PopupWindow),将该事件类注册到Aria管理器。 * 创建事件类 @@ -110,7 +110,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' } ``` -### 三、Aria参数配置 +### Aria参数配置 #### 配置文件设置参数 创建`aria_config.xml`文件,将其放在`assets`目录下,添加以下内容 ```xml @@ -182,7 +182,7 @@ compile 'com.arialyy.aria:Aria:3.1.0' Aria.get(this).getDownloadConfig().setMaxTaskNum(3); ``` -### 其它好用的API +### 常用接口 * 停止所有任务 ```java @@ -194,7 +194,7 @@ Aria.download(this).stopAllTask(); Aria.download(this).removeAllTask(); ``` * 获取当前任务的下载速度 -速度参数有点特殊,需要[下载事件支持](#下载事件监听) +速度参数有点特殊,需要[下载事件支持](#下载状态获取) ``` java @Override public void onTaskRunning(DownloadTask task) { //如果你打开了速度单位转换配置,将可以通过以下方法获取带单位的下载速度,如:1 m/s From 5b0951c7650323da05f8c405aa15e0038d1bdc5c Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Wed, 24 May 2017 11:26:33 +0800 Subject: [PATCH 7/9] doc --- .idea/modules.xml | 2 +- Aria/build.gradle | 4 +-- .../com/arialyy/aria/core/AriaManager.java | 24 +++++++------- .../aria/core/download/DownloadTask.java | 32 ++++++++++++------- .../arialyy/aria/core/upload/UploadTask.java | 32 ++++++++++++------- .../simple/download/DownloadDialog.java | 2 +- .../simple/download/DownloadPopupWindow.java | 2 +- .../fragment_download/DownloadFragment.java | 3 +- .../service_download/DownloadService.java | 6 +--- 9 files changed, 60 insertions(+), 47 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index 5f6de159..9f4bd159 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - + diff --git a/Aria/build.gradle b/Aria/build.gradle index 9eeea133..36c3b695 100644 --- a/Aria/build.gradle +++ b/Aria/build.gradle @@ -7,8 +7,8 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 23 - versionCode 102 - versionName "3.0.3" + versionCode 310 + versionName "3.1.0" } buildTypes { release { diff --git a/Aria/src/main/java/com/arialyy/aria/core/AriaManager.java b/Aria/src/main/java/com/arialyy/aria/core/AriaManager.java index d9972ac1..1e4a2ed0 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/AriaManager.java +++ b/Aria/src/main/java/com/arialyy/aria/core/AriaManager.java @@ -93,16 +93,18 @@ import org.xml.sax.SAXException; SAXParser parser = factory.newSAXParser(); parser.parse(APP.getAssets().open("aria_config.xml"), helper); } catch (ParserConfigurationException | IOException | SAXException e) { - Log.d(TAG, e.toString()); + Log.e(TAG, e.toString()); } } /** * 如果需要在代码中修改下载配置,请使用以下方法 - * - * @ //修改最大任务队列数 - * Aria.get(this).getDownloadConfig().setMaxTaskNum(3); - * + *
+   *   
+   *     //修改最大任务队列数
+   *     Aria.get(this).getDownloadConfig().setMaxTaskNum(3);
+   *   
+   * 
*/ public Configuration.DownloadConfig getDownloadConfig() { return mDConfig; @@ -110,10 +112,12 @@ import org.xml.sax.SAXException; /** * 如果需要在代码中修改下载配置,请使用以下方法 - * - * @ //修改最大任务队列数 - * Aria.get(this).getUploadConfig().setMaxTaskNum(3); - * + *
+   *   
+   *     //修改最大任务队列数
+   *     Aria.get(this).getUploadConfig().setMaxTaskNum(3);
+   *   
+   * 
*/ public Configuration.UploadConfig getUploadConfig() { return mUConfig; @@ -242,8 +246,6 @@ import org.xml.sax.SAXException; * 初始化配置文件 */ private void initConfig() { - //File dFile = new File(APP.getFilesDir().getPath() + Configuration.DOWNLOAD_CONFIG_FILE); - //File uFile = new File(APP.getFilesDir().getPath() + Configuration.UPLOAD_CONFIG_FILE); File xmlFile = new File(APP.getFilesDir().getPath() + Configuration.XML_FILE); if (!xmlFile.exists()) { loadConfig(); diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java b/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java index 059db183..80a99edf 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java @@ -56,13 +56,17 @@ public class DownloadTask implements ITask { /** * @return 返回原始byte速度,需要你在配置文件中配置 *
-   *   
-   *    ...
-   *    
-   *   
+   *   {@code
+   *    
+   *      
+   *        ...
+   *        
+   *      
    *
-   *  或在代码中设置
-   *  Aria.get(this).getDownloadConfig().setConvertSpeed(false);
+   *      或在代码中设置
+   *      Aria.get(this).getDownloadConfig().setConvertSpeed(false);
+   *    
+   *   }
    * 
* 才能生效 */ @@ -73,13 +77,17 @@ public class DownloadTask implements ITask { /** * @return 返回转换单位后的速度,需要你在配置文件中配置,转换完成后为:1b/s、1k/s、1m/s、1g/s、1t/s *
-   *   
-   *    ...
-   *    
-   *   
+   *   {@code
+   *    
+   *      
+   *        ...
+   *        
+   *      
    *
-   *  或在代码中设置
-   *  Aria.get(this).getDownloadConfig().setConvertSpeed(true);
+   *      或在代码中设置
+   *      Aria.get(this).getDownloadConfig().setConvertSpeed(true);
+   *    
+   *   }
    * 
* 才能生效 */ diff --git a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java index bc5c2d76..87b05d41 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java @@ -111,13 +111,17 @@ public class UploadTask implements ITask { /** * @return 返回原始byte速度,需要你在配置文件中配置 *
-   *   
-   *    ...
-   *    
-   *   
+   *  {@code
+   *   
+   *    
+   *      ...
+   *      
+   *    
    *
-   *  或在代码中设置
-   *  Aria.get(this).getUploadConfig().setConvertSpeed(false);
+   *    或在代码中设置
+   *    Aria.get(this).getUploadConfig().setConvertSpeed(false);
+   *   
+   *  }
    * 
* 才能生效 */ @@ -128,13 +132,17 @@ public class UploadTask implements ITask { /** * @return 返回转换单位后的速度,需要你在配置文件中配置,转换完成后为:1b/s、1k/s、1m/s、1g/s、1t/s *
-   *   
-   *    ...
-   *    
-   *   
+   *   {@code
+   *   
+   *    
+   *      ...
+   *      
+   *    
    *
-   *  或在代码中设置
-   *  Aria.get(this).getUploadConfig().setConvertSpeed(true);
+   *    或在代码中设置
+   *    Aria.get(this).getUploadConfig().setConvertSpeed(true);
+   *   
+   *   }
    * 
* * 才能生效 diff --git a/app/src/main/java/com/arialyy/simple/download/DownloadDialog.java b/app/src/main/java/com/arialyy/simple/download/DownloadDialog.java index 1f18dc73..ffc5e6ef 100644 --- a/app/src/main/java/com/arialyy/simple/download/DownloadDialog.java +++ b/app/src/main/java/com/arialyy/simple/download/DownloadDialog.java @@ -44,7 +44,7 @@ public class DownloadDialog extends AbsDialog { @Bind(R.id.speed) TextView mSpeed; private static final String DOWNLOAD_URL = - "http://static.gaoshouyou.com/d/3a/93/573ae1db9493a801c24bf66128b11e39.apk"; + "http://clashroyalecdn.static.kunlun.com/Clash_Royale-1.2.6-kunlun_landing_page-release.apk.apk"; public DownloadDialog(Context context) { super(context); diff --git a/app/src/main/java/com/arialyy/simple/download/DownloadPopupWindow.java b/app/src/main/java/com/arialyy/simple/download/DownloadPopupWindow.java index 450f3004..538f320d 100644 --- a/app/src/main/java/com/arialyy/simple/download/DownloadPopupWindow.java +++ b/app/src/main/java/com/arialyy/simple/download/DownloadPopupWindow.java @@ -131,7 +131,7 @@ public class DownloadPopupWindow extends AbsPopupWindow { } else { mPb.setProgress((int) ((current * 100) / len)); } - mSpeed.setText(CommonUtil.formatFileSize(task.getSpeed()) + "/s"); + mSpeed.setText(task.getConvertSpeed()); } } } diff --git a/app/src/main/java/com/arialyy/simple/download/fragment_download/DownloadFragment.java b/app/src/main/java/com/arialyy/simple/download/fragment_download/DownloadFragment.java index afb2f068..bb90e783 100644 --- a/app/src/main/java/com/arialyy/simple/download/fragment_download/DownloadFragment.java +++ b/app/src/main/java/com/arialyy/simple/download/fragment_download/DownloadFragment.java @@ -45,7 +45,7 @@ public class DownloadFragment extends AbsFragment { @Bind(R.id.speed) TextView mSpeed; private static final String DOWNLOAD_URL = - "http://static.gaoshouyou.com/d/3a/93/573ae1db9493a801c24bf66128b11e39.apk"; + "http://rs.0.gaoshouyou.com/d/90/d7/7490c6fd6cd733bef336e766778507c5.apk"; @Override protected void init(Bundle savedInstanceState) { if (Aria.download(this).taskExists(DOWNLOAD_URL)) { @@ -74,7 +74,6 @@ public class DownloadFragment extends AbsFragment { Aria.download(this) .load(DOWNLOAD_URL) .setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/daialog.apk") - .setDownloadName("daialog.apk") .start(); break; case R.id.stop: diff --git a/app/src/main/java/com/arialyy/simple/download/service_download/DownloadService.java b/app/src/main/java/com/arialyy/simple/download/service_download/DownloadService.java index 92cc65f4..5e2038c0 100644 --- a/app/src/main/java/com/arialyy/simple/download/service_download/DownloadService.java +++ b/app/src/main/java/com/arialyy/simple/download/service_download/DownloadService.java @@ -31,11 +31,7 @@ import com.arialyy.frame.util.show.T; public class DownloadService extends Service { private static final String DOWNLOAD_URL = - //"http://kotlinlang.org/docs/kotlin-docs.pdf"; - //"https://atom-installer.github.com/v1.13.0/AtomSetup.exe?s=1484074138&ext=.exe"; - //"http://static.gaoshouyou.com/d/21/e8/61218d78d0e8b79df68dbc18dd484c97.apk"; - //不支持断点的链接 - "http://ox.konsung.net:5555/ksdc-web/download/downloadFile/?fileName=ksdc_1.0.2.apk&rRange=0-"; + "http://rs.0.gaoshouyou.com/d/df/db/03df9eab61dbc48a5939f671f05f1cdf.apk"; private DownloadNotification mNotify; @Nullable @Override public IBinder onBind(Intent intent) { From 7182dda17d5ee3810433ad76d6e61644d278a14a Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Wed, 24 May 2017 14:53:12 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E8=BD=AC=E6=8D=A2=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E8=BF=9B=E5=BA=A6=E7=99=BE=E5=88=86=E6=AF=94?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aria/build.gradle | 4 ++-- .../aria/core/download/DownloadTask.java | 24 +++++++++++++++++++ .../java/com/arialyy/aria/core/inf/ITask.java | 13 ++++++++++ .../arialyy/aria/core/upload/UploadTask.java | 24 +++++++++++++++++++ README.md | 8 +++++-- 5 files changed, 69 insertions(+), 4 deletions(-) diff --git a/Aria/build.gradle b/Aria/build.gradle index 36c3b695..87935d12 100644 --- a/Aria/build.gradle +++ b/Aria/build.gradle @@ -7,8 +7,8 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 23 - versionCode 310 - versionName "3.1.0" + versionCode 311 + versionName "3.1.1" } buildTypes { release { diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java b/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java index 80a99edf..8611e1fe 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/DownloadTask.java @@ -95,6 +95,18 @@ public class DownloadTask implements ITask { return mEntity.getConvertSpeed(); } + /** + * 获取百分比进度 + * + * @return 返回百分比进度,如果文件长度为0,返回0 + */ + @Override public int getPercent() { + if (mEntity.getFileSize() == 0) { + return 0; + } + return (int) (mEntity.getCurrentProgress() * 100 / mEntity.getFileSize()); + } + /** * 获取文件大小 */ @@ -102,6 +114,18 @@ public class DownloadTask implements ITask { return mEntity.getFileSize(); } + /** + * 转换单位后的文件长度 + * + * @return 如果文件长度为0,则返回0m,否则返回转换后的长度1b、1k、1m、1g、1t + */ + @Override public String getConvertFileSize() { + if (mEntity.getFileSize() == 0) { + return "0m"; + } + return CommonUtil.formatFileSize(mEntity.getFileSize()); + } + /** * 获取当前下载进度 */ diff --git a/Aria/src/main/java/com/arialyy/aria/core/inf/ITask.java b/Aria/src/main/java/com/arialyy/aria/core/inf/ITask.java index d8aa1607..bf88e5e8 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/inf/ITask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/inf/ITask.java @@ -54,8 +54,21 @@ public interface ITask { */ public String getConvertSpeed(); + /** + * 获取百分比进度 + */ + public int getPercent(); + + /** + * 原始文件byte长度 + */ public long getFileSize(); + /** + * 转换单位后的文件长度 + */ + public String getConvertFileSize(); + public long getCurrentProgress(); public void setTargetName(String targetName); diff --git a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java index 87b05d41..8a23431c 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java +++ b/Aria/src/main/java/com/arialyy/aria/core/upload/UploadTask.java @@ -151,6 +151,30 @@ public class UploadTask implements ITask { return mUploadEntity.getConvertSpeed(); } + /** + * 获取百分比进度 + * + * @return 返回百分比进度,如果文件长度为0,返回0 + */ + @Override public int getPercent() { + if (mUploadEntity.getFileSize() == 0) { + return 0; + } + return (int) (mUploadEntity.getCurrentProgress() * 100 / mUploadEntity.getFileSize()); + } + + /** + * 转换单位后的文件长度 + * + * @return 如果文件长度为0,则返回0m,否则返回转换后的长度1b、1k、1m、1g、1t + */ + @Override public String getConvertFileSize() { + if (mUploadEntity.getFileSize() == 0) { + return "0m"; + } + return CommonUtil.formatFileSize(mUploadEntity.getFileSize()); + } + @Override public long getFileSize() { return mUploadEntity.getFileSize(); } diff --git a/README.md b/README.md index 367a50d1..edfdf1ea 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Aria怎样使用? ## 下载 [![Download](https://api.bintray.com/packages/arialyy/maven/Aria/images/download.svg)](https://bintray.com/arialyy/maven/Aria/_latestVersion)
```java -compile 'com.arialyy.aria:Aria:3.1.0' +compile 'com.arialyy.aria:Aria:3.1.1' ``` ## 示例 @@ -203,12 +203,16 @@ Aria.download(this).removeAllTask(); long speed = task.getSpeed(); } ``` -* 获取下载的文件大小 +* 获取下载的文件大小、当前进度百分比 同样的,你也可以在DownloadTask对象中获取下载的文件大小 ``` @Override public void onTaskRunning(DownloadTask task) {  //获取文件大小 long fileSize = task.getFileSize(); + //获取单位转换后的文件大小 + String fileSize1 = task.getConvertFileSize(); + //当前进度百分比 + int percent = task.getPercent(); } ``` From 93844516a357bda56028af5465650fa566489f88 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Thu, 25 May 2017 23:26:46 +0800 Subject: [PATCH 9/9] Update DownloadApi.md --- DownloadApi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DownloadApi.md b/DownloadApi.md index 45134f3d..5ec2421b 100644 --- a/DownloadApi.md +++ b/DownloadApi.md @@ -1,7 +1,7 @@ ## 关于Aria,你还需要知道的一些东西 - 设置下载任务数,Aria默认下载任务为**2** - ```java + ```java Aria.get(getContext()).setMaxDownloadNum(num); ``` - 停止所有下载