1

我正在编写 Windows Phone 8.1 Silverlight 应用程序。

我正在使用 Windows.Networking.BackgroundTransfer 命名空间中的 DownloadOperation 和 UploadOperation 来下载/上传图像、文件......并且所有这些都可以在 Windows Phone 8.1 设备/模拟器上成功运行,但在 Windows Phone 10 模拟器上却不行。

问题是 DownloadOperation / UploadOperation 没有开始下载/上传,甚至没有提供进度回调甚至异常......看起来该应用程序在调用 .StartAsync() 后开始休眠......

这是我如何使用此 API 的示例:

            StorageFile destinationFile;
            try
            {
                destinationFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(item.Name, 
                    CreationCollisionOption.ReplaceExisting);
            }
            catch (FileNotFoundException ex)
            {
                if (Debugger.IsAttached) Debugger.Break();
                return;
            }

            var backgroundDownload = _backgroundDownloader.CreateDownload(new Uri(item.Url), destinationFile);
            backgroundDownload.CostPolicy = BackgroundTransferCostPolicy.Always;

            try
            {
                var progresscallback = new Progress<DownloadOperation>(operation =>
                {
                    if (operation.Progress.TotalBytesToReceive != 0)
                    {
                        var progress = 100 * operation.Progress.BytesReceived / (double)operation.Progress.TotalBytesToReceive;
                        item.Progress = progress;
                    }                        
                });

                await backgroundDownload.StartAsync().AsTask(_cancellationTokenSource.Token, progresscallback);
                var info = backgroundDownload.GetResponseInformation();
                if (info.StatusCode == 200 || info.StatusCode == 206)
                {
                    ImagesToDownload.Remove(item);
                    DownloadedImages.Insert(0, item);
                }
                else
                {
                    if (Debugger.IsAttached) Debugger.Break();
                }
            }
            catch (Exception ex)
            {
                if (Debugger.IsAttached) Debugger.Break();
            }
        }

我看到其他一些人也有同样的问题: Windows 10 移动版中的 BackgroundUploader 和 BackgroundDownloader

Windows 10 应用程序下载操作未启动

但是我没有找到解决方案如何解决这个问题?取消未完成的操作和设备重启没有帮助。

帮助如何强制在 Windows Phone 10 模拟器/设备上运行 DownloadOperation?

我的小型测试 Windows Phone 8.1 Silverligth 应用程序,其中 DownloadOperation 适用于 Windows Phone 8.1 设备/模拟器,但不适用于 Windows Phone 10 模拟器

在这个测试应用程序中,即使在我尝试下载前 4 个图像时第一次部署应用程序后,我也可以重现这个错误......

4

0 回答 0