From d34a12729efe933fe27a385414c56993f3ee9c01 Mon Sep 17 00:00:00 2001 From: laoyuyu <511455842@QQ.com> Date: Thu, 31 Aug 2017 15:34:25 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20Aria=E5=9F=BA=E6=9C=AC=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aria基本使用.md | 166 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 137 insertions(+), 29 deletions(-) diff --git a/Aria基本使用.md b/Aria基本使用.md index bb46996..44012ab 100644 --- a/Aria基本使用.md +++ b/Aria基本使用.md @@ -1,42 +1,150 @@ ## 使用Aria -### 基本使用 -*** +* [HTTP单任务下载](#HTTP单任务下载) +* [HTTP任务组下载](#HTTP任务组下载) +* [HTTP上传](#HTTP单任务上传) +* [FTP下载](#FTP下载) +* [FTP文件夹下载](#FTP文件夹下载) +* [FTP上传](#FTP单文件上传) + +### HTTP单任务下载 +* 下载\恢复下载 -例子为单任务下载,只需要很简单的代码,便可以实现下载功能 ```java Aria.download(this) .load(DOWNLOAD_URL) //读取下载地址 - .setDownloadPath(DOWNLOAD_PATH) //设置文件保存的完整路径 + .setDownloadPath(DOWNLOAD_PATH) //设置文件保存的完整路径 .start(); //启动下载 ``` +* 暂停 -### 任务状态的获取 -基于解耦合的考虑,Aria的下载功能是和状态获取相分离的,状态的获取并不会集成到链式代码中,但是Aria提供了另一种更简单更灵活的方案。 -通过注解,你可以很容易获取任务的所有状态。 + ```java + Aria.download(this).load(DOWNLOAD_URL).pause(); + ``` -1. 将对象注册到Aria -```java -protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Aria.download(this).register(); -} +* 取消下载 + + ```java + Aria.download(this).load(DOWNLOAD_URL).cancel(); + ``` + +### HTTP任务组下载 +任务组的下载和普通任务的下载基本上差不多,区别在于,任务组下载不需要对每一个子任务设置保存路径,**但是需要设置任务组保存文件夹路径,所有子任务都保存在该文件夹下** + +* 下载\恢复下载 + + ```java + Aria.download(this) + .load(urls) //设置一主任务,参数为List + .setDownloadDirPath(groupDirPath) //设置任务组的文件夹路径 + /** + * 任务组总任务大小,任务组是一个抽象的概念,没有真实的数据实体,任务组的大小是Aria动态获取子任务大小相加而得到的, + * 如果你知道当前任务组总大小,你也可以调用该方法给任务组设置大小 + * + * 为了更好的用户体验,建议直接设置任务组文件大小 + */ + .setFileSize(fileSize) + .start(); //启动下载 + ``` +* 暂停 + + ```java + Aria.download(this).load(urls).pause(); + ``` + +* 取消下载 + + ```java + Aria.download(this).load(urls).cancel(); + ``` + +### HTTP单任务上传 +* 添加任务(只添加,不上传) + + ```java + Aria.upload(this) + .load(filePath) //文件路径 + .setUploadUrl(uploadUrl) //上传路径 + .setAttachment(fileKey) //服务器读取文件的key + .add(); + ``` + +* 上传 + + ```java + Aria.upload(this) + .load(filePath) //文件路径 + .setUploadUrl(uploadUrl) //上传路径 + .setAttachment(fileKey) //服务器读取文件的key + .start(); + ``` +* 取消上传 + + ```java + Aria.upload(this).load(filePath).cancel(); + ``` + +### FTP下载 +* 开始\恢复下载 + ```java + Aria.download(this) + .loadFtp("ftp://172.18.104.129:21/haha/large.rar") + .login("lao", "123456") //登录FTP服务器 + .setDownloadPath("/mnt/sdcard/") //设置文件保存文件夹 + .start(); ``` -2. 通过注解获取任务执行状态 +* 暂停 + ```java + Aria.download(this).loadFtp(URL).stop(); + ``` - **注意:** - - 注解回掉采用Apt的方式实现,所以,你不需要担心这会影响你机器的性能 - - 被注解的方法**不能被private修饰** - - 被注解的方法**只能有一个参数,并且参数类型必须是`DownloadTask`或`UploadTask`或`DownloadGroupTask`** - - 方法名可以为任意字符串 - -```java -@Download.onTaskRunning(DOWNLOAD_URL) protected void running(DownloadTask task) { - //在这里处理任务执行中的状态,如进度进度条的刷新 -} +* 删除任务 + ```java + Aria.download(this).loadFtp(URL).cancel(); + ``` -@Download.onTaskComplete(DOWNLOAD_URL) void taskComplete(DownloadTask task) { - //在这里处理任务完成的状态 -} -``` -[更多注解使用方法](https://github.com/AriaLyy/Aria/wiki/%E6%B3%A8%E8%A7%A3%E4%BD%BF%E7%94%A8) \ No newline at end of file +### FTP文件夹下载 +* 开始\恢复下载 + + ```java + Aria.download(this) + .loadFtpDir("ftp://172.18.104.129:21/haha/") + .setDownloadDirPath(downloadPath) + .login("lao", "123456") + .start(); + ``` + +* 暂停 + + ```java + Aria.download(this).loadFtpDir(dir).stop(); + ``` + +* 删除任务 + + ```java + Aria.download(this).loadFtpDir(dir).cancel(); + ``` + +### FTP单文件上传 +* 开始\恢复上传 + + ```java + Aria.upload(this) + .loadFtp("/mnt/sdcard/gggg.apk") //上传文件路径 + .setUploadUrl(URL) //上传的ftp服务器地址 + .login("lao", "123456") + .start(); + ``` + +* 暂停 + + ```java + Aria.upload(this).loadFtp(FILE_PATH).stop(); + ``` + +* 删除任务 + + ```java + Aria.upload(this).loadFtp(FILE_PATH).cancel(); + ```