0

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

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

问题的一些背景:

我正在开发一个 Windows Phone 8 地图应用程序,该应用程序允许下载和缓存地图部分以供离线使用。此过程可能导致需要下载 1,000 个地图图块。

我创建了一个进程,它产生25 个 BackgroundTransferRequest 的完整限制,然后在请求完成时向 BackgroundTransferService 添加更多。这一切都很好,直到应用程序真正进入后台。

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

4

1 回答 1

0

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

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

于 2013-07-18T09:00:59.890 回答