SFTP普通任务下载
要使用ftp文件下载功能,需要导入sftp组件。
一、创建任务
long taskId = Aria.download(SingleTaskActivity.this)
.loadFtp(url) // 下载地址
.setFilePath(filePath) // 设置文件保存路径
.sftpOption(new SFtpOption()) // 将任务类型切换到Sftp
.create();
通过#create()
,方法,可以创建一个新的下载任务;
1.1、SFtpOption设置
如果你需要设置ftp相关参数,见SFtpOption设置
1.2、覆盖路径
在某些情况下,你的文件保存路径可能已经被占用了,但是你只能使用这个路径保存文件,可以使用#ignoreCheckPermissions()
接口强制使用该文件保存路径。
二、停止、恢复、删除任务
2.1、获取任务id
停止、恢复、删除
任务需要使用任务id。获取任务id的方法有两种,详情见获取任务列表。
2.2、停止任务
Aria.downlaod(this).loadFtp(taskId).stop();
2.3、恢复任务
Aria.download(this).loadFtp(taskId).resume();
或
Aria.download(this).loadFtp(taskId).resume(true); // 立即进入执行队列
2.4、删除任务
Aria.download(this).loadFtp(taskId).cancel();
在下载完成的情况下,#cancel()
方法只会删除记录,而不会删除已下载完成的文件,如果你希望在下载完成的情况下删除已下载完成的文件,可以是使用#cancel()
的重载方法#cancel(true)
。
2.5 其他API
除了这些基本的任务控制外,你还可以查看任务控制文档。
三、任务状态监听
在Aria中,任务状态是通过java注解获取的。要获取任务状态,你只需要以下几个步骤便可。
1、在#onCreate()
或其它位置注册Aria
Aria.download(this).register();
2、使用注解获取任务状态,如执行中、完成
/*
* 任务执行中
*/
@Download.onTaskRunning
protected void running(DownloadTask task) {
if (task.getKey().equals(mUrl)) { // 判断任务是否是指定任务
ALog.d(TAG, "isRunning");
progress.setProgress(task.getPercent()); // 获取百分比进度
speed.setSpeed(task.getConvertSpeed()); // 获取速度
}
}
/*
* 任务完成
*/
@Download.onTaskComplete
protected void taskComplete(DownloadTask task) {
if (task.getKey().equals(mUrl)) {
progress.setProgress(100);
}
}
⚠️注意:如果你在非Activity或Fragment
中注册了Aria,那么你需要在销毁对象时调用Aria.download(this).unRegister();
取消注册,否则会出现内存泄漏的情况。
👉其它注解👈