使用android-async-http下载android中的大文件

时间:2017-05-15 16:02:12

标签: java android loopj

我目前正在使用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();
                }
            }
        }
    });
}

如何直接将文件下载到外部存储设备?

0 个答案:

没有答案