应用程序在后台成功后,将 BackgroundTransferRequest 添加到 BackgroundTransferService,但新请求在应用程序返回前台之前不会真正运行。对于我下载大量可能需要相当长的时间才能完成的小文件的场景来说并不是很好。
我想微软可能已经通过设计(?)实现了这种行为,但是有没有人知道解决这个问题的方法或替代方法?
问题的一些背景:
我正在开发一个 Windows Phone 8 地图应用程序,该应用程序允许下载和缓存地图部分以供离线使用。此过程可能导致需要下载 1,000 个地图图块。
我创建了一个进程,它产生25 个 BackgroundTransferRequest 的完整限制,然后在请求完成时向 BackgroundTransferService 添加更多。这一切都很好,直到应用程序真正进入后台。
我考虑过进行一些 Web 服务器端处理,以允许将切片捆绑到 zip 中并作为单个请求下载,但这是额外的复杂性,并且会导致手机上需要两倍的空间来完成下载然后提取删除原始包之前的文件。但是,理想情况下,我想找到一种方法来强制新的 BackgroundTransferRequest 开始在后台运行。