所以我在UWP上有一个从服务器下载数据的后台任务。此任务可能需要一分钟,具体取决于互联网速度。我发现当我的用户最小化应用程序时,下载暂停,因此决定在BackgroundTask上运行
测试时我发现我的下载没有完成,后来发现this link后台任务有限制:
后台任务仅限于30秒的挂钟使用时间。
但是经过一些谷歌搜索后,我发现this link提到了一种增加后台任务超时的方法
在通用Windows平台中,后台任务是进程 在没有任何形式的用户界面的情况下在后台运行。背景 任务通常最多可能在二十五秒之前运行 他们被取消了。一些较长时间运行的任务也有一个检查 确保后台任务不会闲置或使用 记忆。在Windows Creators Update(版本1703)中, 引入了extendedBackgroundTaskTime限制功能 删除这些限制。 extendedBackgroundTaskTime功能是 在应用的清单文件中添加为限制功能:
Package.appxmanifest
XML
<Package ...> <Capabilities> <rescap:Capability Name="extendedBackgroundTaskTime"/> </Capabilities> </Package>
此功能可删除执行时间 限制和闲置任务监督
但是在将上面的内容添加到我的package.appxmanifest文件后,我收到以下错误:
文件内容&#39; Package.appxmanifest&#39;不是格式良好的XML。 &#39;阻容组件&#39;是未声明的前缀
那么可以从我的应用程序中删除此后台任务限制吗?
答案 0 :(得分:2)
UWP有一项功能,允许您对即使应用程序关闭时可以完成的下载进行排队。 请查看this article,其中说明了如何使用此功能。
如果你仍想从后台任务开始下载,那么让后台任务调用该功能,这样,当后台任务到期时,下载将继续,并由Windows和UWP管理。
答案 1 :(得分:1)
正如Mike McCaughan在关于这个问题的评论中所观察到的那样,您所看到的特定错误的最可能解释是您根本没有在封闭的包上声明rescap
命名空间功能标记引用的元素:
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp wincap rescap">
您是否需要其他名称空间我不能说,但您正在争论的受限制功能案例中涉及的关键名称是xmlns:rescap
。