我有一个UWP Windows 8.1应用程序,它使用BackgroundDownloader来加载图片。即使应用程序被暂停,我也需要能够下载。该应用程序在Windows 8和Windows 10上运行。在Windows 10中,可以禁用后台任务(设置 - >隐私 - >后台应用程序)。如果我的应用程序无法使用后台任务,则永远不会完成下载。
我尝试使用BackgroundExecutionManager.GetAccessStatus()来确定当前权限,并在权限被关闭时切换到HttpClient。我遇到了两个问题:
所以我有两个问题:
我使用像
这样的代码 var downloader = new BackgroundDownloader();
var download = downloader.CreateDownload(source, destinationFile);
await HandleDownloadAsync(download, true);
...
private async Task HandleDownloadAsync(DownloadOperation download, bool start)
{
Progress<DownloadOperation> progressCallback = new Progress<DownloadOperation>(DownloadProgress);
var cts = new CancellationTokenSource();
cts.CancelAfter(120000);
if (start)
{
await download.StartAsync().AsTask(cts.Token, progressCallback);
}
else
{
await download.AttachAsync().AsTask(cts.Token, progressCallback);
}
}