DownloadManager在完成时删除文件

时间:2012-06-02 22:46:55

标签: android download-manager

我有一个应用程序,可以使用Android的DownloadManager将文件下载到外部文件存储(SD卡)上的文件夹中。这通常可以正常工作,但是有一些源会导致DownloadManager在完成下载时将文件丢弃。源文件的一个很好的例子是:

http://traffic.libsyn.com/hdtvpodcast/HDTV-2012-06-01.mp3

看起来问题可能只来自libsyn.com的文件,但我并不积极。我一直在寻找方法来改变DownloadManager处理保存文件的方法,但在类中找不到任何选项。

这是我将网址排入队列的地方:

request = new Request(Uri.parse(currUrl));
external = Uri.fromFile(externalFile);
request.setDestinationUri(external);
request.setVisibleInDownloadsUi(false);
request.setNotificationVisibility(
    DownloadManager.Request.VISIBILITY_HIDDEN);
currDownloadId = dm.enqueue(request);

使用以下方法创建文件位置:

Environment.getExternalStorageDirectory().getAbsolutePath() + 
    File.separator + "Podcatcher" + File.separator + "Feeds" + File.separator + 
    [int] + File.separator + [int] + [string extension];

当我从DownloadManager查询DownloadManager.COLUMN_LOCAL_FILENAME列时,结果是这样的:

/mnt/sdcard/Podcatcher/Feeds/19/225.mp3

大多数文件都很好并且在下载后仍然存在,但在这种情况下不是这样。关于如何在下载后强制DownloadManager离开文件的任何想法?

编辑:当我从下载结束时报告失败的浏览器下载此文件时,我忽略了提及当我使用独立的下载管理器时。也许我唯一的解决方案是从头开始下载,没有DownloadManager?

1 个答案:

答案 0 :(得分:1)

请按照代码 - 为我工作:

request.setMimeType(application/octet-stream);