应用程序在后台运行后,将BackgroundTransferRequest添加到BackgroundTransferService成功,但在应用程序返回前台之前,新请求实际上不会运行。对于我下载大量可能需要相当长时间才能完成的小文件的情况来说,情况并不是那么好。
我想微软可能已经通过设计(?)实现了这种行为,但是有没有人知道这种方法或替代方法呢?
该问题的一些背景知识:
我正在开发一个Windows Phone 8地图应用程序,允许下载和缓存部分地图以供离线使用。此过程可能导致需要下载1,000个地图图块。
我创建了一个生成完整limit of 25 BackgroundTransferRequest's的进程,然后在请求完成时向BackgroundTransferService添加更多内容。这一切都很好,直到应用程序实际进入后台。
我考虑过进行一些Web服务器端处理,以允许将磁贴捆绑到一个zip并作为单个请求下载,但这是额外的复杂性,并且将导致手机上需要两倍的空间来完成下载然后在删除原始包之前解压缩文件。但是,理想情况下,我想找到一种方法来强制新的BackgroundTransferRequest开始在后台运行。
答案 0 :(得分:0)
目前尚不清楚你的实际问题是什么,但我绝对建议将它们捆绑成一个zip文件然后下载。使用单个文件而不是数千个文件几乎总是更容易。
如果磁盘空间确实是一个真正的问题(不仅仅是理论上的问题 - 我之前已经将数千个地图图块放在20mb以下,但它将取决于图像的复杂性和质量),那么你可以制作一些zip文件。那么你就可以避免BTR问题而不占用太多的磁盘空间(甚至是暂时的)。