Android 下载管理器下载“;停止“;在下载过程中

Android 下载管理器下载“;停止“;在下载过程中,android,download,android-download-manager,Android,Download,Android Download Manager,我正在尝试通过DownloadManager进行下载。它调用的很好,初始化的也很好。我可以看到我的“音乐”目录中创建了一个文件,它甚至开始有点增长。一旦达到3-4MB,下载就会取消,并显示“下载”不成功。这可能是因为我从一个缓慢的源下载,但它肯定是可用的。关于如何避免此退出/超时的任何想法。下面是我正在使用的函数 以防它很重要。我从一个异步方法调用它,并循环遍历一个映射,该映射将开始下载20个(或更多)mp3文件 谢谢, 克雷格 }FWIW-我从未找到这个问题的好答案,但一旦我修复了网络,它似乎

我正在尝试通过DownloadManager进行下载。它调用的很好,初始化的也很好。我可以看到我的“音乐”目录中创建了一个文件,它甚至开始有点增长。一旦达到3-4MB,下载就会取消,并显示“下载”不成功。这可能是因为我从一个缓慢的源下载,但它肯定是可用的。关于如何避免此退出/超时的任何想法。下面是我正在使用的函数

以防它很重要。我从一个异步方法调用它,并循环遍历一个映射,该映射将开始下载20个(或更多)mp3文件

谢谢, 克雷格


}

FWIW-我从未找到这个问题的好答案,但一旦我修复了网络,它似乎就消失了。这种情况仍然偶尔发生,但相对较少,而且似乎与网络有关。

您是从安全站点或密码保护目录下载的吗?如果是这样的话,它可能与这个(6岁!)bug有关:
 private void download(String strUrl, String fileName){
    try {

        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(strUrl));
        request.setDescription(strUrl);
        request.setTitle(fileName);request.allowScanningByMediaScanner();
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC,fileName);

        // get download service and enqueue file
        DownloadManager manager = (DownloadManager) ctx.getSystemService(Context.DOWNLOAD_SERVICE);
        manager.enqueue(request);
    } catch (Exception e) {
        e.printStackTrace();
        Log.i("ERROR: ", e.getCause().getMessage());
    }