Windows phone 8 添加新的BackgroundTransferRequest';一旦应用程序进入后台,它就会停止运行

Windows phone 8 添加新的BackgroundTransferRequest';一旦应用程序进入后台,它就会停止运行,windows-phone-8,background-transfer,Windows Phone 8,Background Transfer,一旦应用程序进入后台,将BackgroundTransferRequest添加到BackgroundTransferService是成功的,但新请求在应用程序返回前台之前不会实际运行。对于我下载大量可能需要相当长时间才能完成的小文件的场景来说,这并不太好 我想微软可能已经通过设计实现了这种行为(?),但有人知道解决这个问题的方法或者其他方法吗 问题的背景知识: 我正在开发一个WindowsPhone8Map应用程序,它允许下载和缓存部分地图供脱机使用。此过程可能导致需要下载1000个地图分幅 我

一旦应用程序进入后台,将BackgroundTransferRequest添加到BackgroundTransferService是成功的,但新请求在应用程序返回前台之前不会实际运行。对于我下载大量可能需要相当长时间才能完成的小文件的场景来说,这并不太好

我想微软可能已经通过设计实现了这种行为(?),但有人知道解决这个问题的方法或者其他方法吗

问题的背景知识:

我正在开发一个WindowsPhone8Map应用程序,它允许下载和缓存部分地图供脱机使用。此过程可能导致需要下载1000个地图分幅

我创建了一个生成完整请求的流程,然后在请求完成时向BackgroundTransferService添加更多请求。这一切都可以正常工作,直到应用程序真正进入后台


我曾考虑过做一些web服务器端处理,以允许将磁贴捆绑到zip中并作为单个请求下载,但这是额外的复杂性,将导致手机上需要两倍的空间来完成下载,然后在删除原始软件包之前提取文件。但是,理想情况下,我想找到一种方法来强制新的BackgroundTransferRequest开始在后台运行。

不清楚您的实际问题是什么,但我绝对建议将它们捆绑到zip文件中,然后下载。使用单个文件几乎总是比使用数千个文件更容易


如果磁盘空间真的是一个真正的问题(不仅仅是理论上的问题——我以前在20mb以下放置了数千个贴图块,但这取决于图像的复杂性和质量),那么您可以制作一些zip文件。这样就可以避免BTR问题,并且不会占用太多的磁盘空间(即使是暂时的)。

谢谢Matt。理想情况下,我希望找到一种解决BackgroundTransferRequest问题的方法,允许我在后台运行新的。关于地图分幅,拉取小文件更容易,因为这样可以防止服务器上的额外负载下载和捆绑1000个文件(以及额外的工作)。根据用户选择的地图大小,用户可能会请求几GB的分幅。