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



我对在安卓中使用服务下载多个文件有一些疑问。从谷歌搜索,所有这些都是推荐的意图服务,但就我而言我在列表视图中有文件列表,如果用户选择任何文件,它将下载通知进度,如果用户从活动服务按后退按钮需要后台运行,用户可以选择多个文件,在每个文件中都有单独的进度通知栏

我的问题是

  1. 如果我选择意图服务,如何在以下情况下动态传递文件 URL用户选择文件,如果我调用启动服务,则为每个网址它不会并行下载

  2. 如果我选择服务并绑定它,则从文档绑定服务没有帮助 适合长时间运行

  3. 哪种方法最好实现以及如何将动态 URL 传递到服务和更新下载 URL 列表

谢谢

使用 Android 下载管理器。

下载管理器是处理长时间运行的 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);
        }
    });

最新更新