下载多个并发文件

时间:2018-04-15 17:15:51

标签: java android okhttp3

我需要下载多个文件(约100个文件)

下载是否同步无关紧要

只需下载所有文件即可。

我的代码java for get name files and urls:

for (int i = 0; i < AssetData.size(); i++){
        String item = AssetData.get(i).toString();
        String name[] = item.split("/");
        String Url = setting.Main_Domain+"/"+item;// Url for downloading
        String fname =name[name.length-1] ;// File name like: test.txt
        File file2 =  new File(getFilesDir(),item.replace(fname,"")); // Parent File like: data/user/0/com.test.app/data/
        if(!file2.exists()){file2.mkdir();}

    }

文件的大小很小,一起大约是3兆字节

2 个答案:

答案 0 :(得分:0)

您可以使用此库实现代码。您可以同时下载多个文件,也可以在完成一个文件后开始下载。

https://github.com/MindorksOpenSource/PRDownloader

这是您的代码的外观

int downloadId = PRDownloader.download(url, dirPath, fileName)
                        .build()
                        .setOnStartOrResumeListener(new OnStartOrResumeListener() {
                            @Override
                            public void onStartOrResume() {

                            }
                        })
                        .setOnPauseListener(new OnPauseListener() {
                            @Override
                            public void onPause() {

                            }
                        })
                        .setOnCancelListener(new OnCancelListener() {
                            @Override
                            public void onCancel() {

                            }
                        })
                        .setOnProgressListener(new OnProgressListener() {
                            @Override
                            public void onProgress(Progress progress) {

                            }
                        })
                        .start(new OnDownloadListener() {
                            @Override
                            public void onDownloadComplete() {

                            }

                            @Override
                            public void onError(Error error) {

                            }
                        });

不是这么简单。 :)

答案 1 :(得分:0)

在我看来, ion 对您来说是一个非常优雅的解决方案。它易于使用,并且有许多未来的连接池和通过HTTP连接重用......