我目前正在使用loopj下载非常大的文件(大小为千兆字节)。
我想将文件下载到SD卡(如果存在)。
使用提供的标准样本https://github.com/loopj/android-async-http/blob/master/sample/src/main/java/com/loopj/android/http/sample/FileSample.java,文件似乎下载发生在内部存储上,并且只有在完成后才会将其放入外部存储中。
File file = new File(Environment.getExternalStorageDirectory());
AsyncHttpClient httpClient = new AsyncHttpClient();
if (movie.getMovieUrl() != null) {
handle = httpClient.get(context, movie.getMovieUrl(), new RangeFileAsyncHttpResponseHandler(file) {
@Override
public void onSuccess(int statusCode, Header[] headers, File file) {
if (null != listener) {
listener.onComplete();
}
}
@Override
public void onProgress(long downloadedBytes, long totalBytes) {
notification.updateProgress();
}
@Override
public void onFailure(int statusCode, Header[] headers, Throwable throwable, File file) {
DownloadException error = new DownloadException(throwable);
if (null != error) {
listener.onError(error);
}
}
@Override
public void onCancel() {
if (movie.isDownloadPaused()) {
notification.pause();
}
else {
notification.remove();
if (null != listener) {
listener.onCancel();
}
}
}
});
}
如何直接将文件下载到外部存储设备?