BackgroundDownloader.GetCurrentDownloadsAsync返回完成的下载

在我的Windows商店应用程序中,我使用BackgroundDownloader类来处理多个后台下载。 在我的所有3次下载完成后,我关闭并打开应用程序,然后当我运行BackgroundDownloader.GetCurrentDownloadsAsync时,它返回100%完成状态的所有下载。

IReadOnlyList readOnlyList = await BackgroundDownloader.GetCurrentDownloadsAsync(); 

我的期望是完成下载将从列表中删除或以某种方式我需要强制删除它们。 但找不到任何function。

如何从CurrentDownloads列表中删除已完成的下载?

– 问题:GetCurrentDownloadsAsync函数会返回所有活动下载(包括其他应用程序下载)还是仅在我的应用程序中执行下载?

您必须通过对刚刚完成的下载执行AttachAsync()来执行完成处理程序。 之后, GetCurrentDownloadsAsync()的结果将不再出现下载。

尝试:

 private async void Foo() { var downloads = await BackgroundDownloader.GetCurrentDownloadsAsync(); foreach (var download in downloads) { var task = download.AttachAsync().AsTask(); var notAwait = task.ContinueWith(OnCompleted); } } private void OnCompleted(Task task) { DownloadOperation download = task.Result; // ... }