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 アプリの DownloadOperation が開始されない
しかし、この問題を解決する方法が見つかりませんでしたか? 未完了の操作のキャンセルとデバイスの再起動は役に立ちません。
Windows Phone 10 エミュレーター/デバイスで DownloadOperation を強制的に動作させる方法を教えてください。
このテスト アプリでは、最初の 4 つのイメージをダウンロードしようとすると、アプリケーションの最初の展開後でもこのバグを再現できます...