0

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

我的问题是

  1. 如果我选择意向服务,当用户选择文件时如何动态传递文件 URL,如果我为每个 url 调用启动服务,它将不会并行下载

  2. 如果我选择服务并绑定它,则从文档绑定服务中长时间运行无济于事

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

谢谢

4

1 回答 1

0

使用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);
        }
    });
于 2016-05-29T17:10:24.917 回答