通过动态URL同时使用服务进行多个文件下载

时间:2016-05-29 13:11:11

标签: android android-service android-progressbar android-intentservice downloadfileasync

我有一些关于在an​​droid中使用服务下载多个文件的问题。 从谷歌搜索,所有推荐的意向服务,但在我的情况下 我在列表视图中有文件列表,如果用户选择将下载的任何文件与通知进度,如果用户按下活动服务后退按钮需要运行后台,用户可以选择多个文件,在每个文件中都有单独的进度通知栏< / p>

我的问题是

  1. 如果我选择意向服务,我怎样才能动态传递文件URL 用户选择文件,如果我为每个人打算调用启动服务 url它不会下载并行

  2. 如果我选择服务并绑定它,从文件绑定服务无帮助     长期运行

  3. 哪种方法最好实现,以及如何将动态网址传递给 服务并更新下载网址列表

  4. 由于

1 个答案:

答案 0 :(得分:0)

使用Android Download Manager

下载管理器是一种处理长时间运行的HTTP下载的系统服务。客户端可以请求将URI下载到特定目标文件。下载管理器将在后台进行下载,负责HTTP交互并在发生故障或连接更改和系统重新启动后重试下载。

在您的活动中,您定义了列表视图:

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                                long id) {

            String urlOfFileToDownload = (String) parent.getItemAtPosition(position);
            // Object item = parent.getItemAtPosition(position);

            DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
            Uri uri = Uri.parse(urlOfFileToDownload);
            DownloadManager.Request request = new DownloadManager.Request(uri);
            Long reference = downloadmanager.enqueue(request);
        }
    });