我正在使用BackgroundTransferRequest
下载文件,我有超过6,500个mp3,用户可以一次下载它们点击下载所有按钮或者用户可以下载单个文件。
我无法在下载BackgroundTransferRequest
中添加超过25个文件。在下载队列中添加超过25个文件的解决方法是什么。
当达到该级别时,例外是
Unable to download. The application request limit has been reached
添加所有文件后添加队列的代码。我正在处理下载。
transferFileName = aya.DownloadUri;
Uri transferUri = new Uri(Uri.EscapeUriString(aya.DownloadUri), UriKind.RelativeOrAbsolute);
BackgroundTransferRequest transferRequest = new BackgroundTransferRequest(transferUri);
transferRequest.Method = "GET";
string downloadFile = transferFileName.Substring(transferFileName.LastIndexOf("/") + 1);
Uri downloadUri = new Uri(downloadLocation + aya.ChapterID + "/" + downloadFile, UriKind.RelativeOrAbsolute);
transferRequest.DownloadLocation = downloadUri;
transferRequest.Tag = string.Format("{0},{1},{2}", downloadFile, aya.ID, aya.ChapterID);
transferRequest.TransferPreferences = TransferPreferences.AllowBattery;
BackgroundTransferService.Add(transferRequest);
答案 0 :(得分:2)
您必须将事件处理程序附加到BackgroundTransferRequest.StatusChanged
。在适当的状态下,您必须明确删除BackgroundTransferService
的转移。正如您现在所做的那样,必须手动从BackgroundTransferService
删除请求。所有这些都在introduction to background transfers on msdn中详细解释。
您应该创建一个要下载的文件队列,首先在BackgroundTransferService
中放置前25个传输,然后在BackgroudTransferService.Remove(..)
之后,您可以从队列中开始下一次传输。