Android FTP下载暂停/恢复

时间:2015-09-12 08:37:16

标签: java android download ftp apache-commons-net

我正在开发一个Android项目,需要暂停/恢复FTP下载。

以下是我用于FTP连接的代码:

ftpClient.setConnectTimeout(25000);
ftpClient.login("login", "password");
ftpClient.changeWorkingDirectory("/audio");
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

然后我开始下载:

OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(localFile));

byte[] bytesArray = new byte[4096];
int bytesRead = -1;
totalRead = 0;

if (localFileSize > 0) {
    ftpClient.setRestartOffset(localFileSize);
    ftpClient.restart(localFileSize);
}

InputStream inputStream = ftpClient.retrieveFileStream(fileName);

while ((bytesRead = inputStream.read(bytesArray)) != -1) {
    totalRead += bytesRead;
    outputStream.write(bytesArray, (int) localFileSize, bytesRead);
}

success = ftpClient.completePendingCommand();

我尝试暂停使用abort,如下所示:

if (ftpClient.abort()) {
   //connection aborted!;
}

但似乎abort在这里提到的有效下载时不起作用:https://issues.apache.org/jira/browse/NET-419

我有什么方法可以在Android中执行FTP下载的暂停/恢复?

1 个答案:

答案 0 :(得分:0)

如果您确实只想暂停下载(与中止/重新连接/恢复相反),那么您需要做的就是暂时暂停写入数据连接流的while循环。

请参阅How to pause/resume thread in Android?