所以我在UWP上有一个从服务器下载数据的后台任务 . 此任务可能需要一分钟,具体取决于互联网速度 . 我发现当我的用户最小化应用程序时,下载暂停,所以决定在BackgroundTask上运行它
在测试时,我发现我的下载没有完成,后来发现this link后台任务有一个限制:
后台任务仅限于30秒的挂钟使用 .
但经过一些谷歌搜索后,我发现了this link,它提到了一种增加后台任务超时的方法
在通用Windows平台中,后台任务是在后台运行而没有任何形式的用户界面的进程 . 后台任务通常可以在取消之前运行最多二十五秒 . 一些较长时间运行的任务还要检查以确保后台任务不会闲置或使用内存 . 在Windows Creators Update(版本1703)中,引入了extendedBackgroundTaskTime限制功能以删除这些限制 . extendedBackgroundTaskTime功能作为限制功能添加到应用程序的清单文件中:Package.appxmanifest XML <Package ...>
<能力>
<rescap:Capability Name =“extendedBackgroundTaskTime”/>
</能力>
</包装>
此功能可删除执行时间限制和空闲任务监视程序
但在将上面的内容添加到我的package.appxmanifest文件后,我收到以下错误:
'Package.appxmanifest'文件的内容不是格式良好的XML . 'rescap'是未声明的前缀
那么是否可以从我的应用程序中删除此后台任务限制?
2 回答
UWP有一项功能,允许您对即使应用程序关闭时可以完成的下载进行排队 . 请看this article,它解释了如何使用此功能 .
如果您仍想从后台任务开始下载,则让后台任务调用该功能,这样,当后台任务到期时,下载将继续,并由Windows和UWP管理 .
正如Mike McCaughan在关于该问题的评论中所观察到的,对于您所看到的特定错误,最可能的解释是您根本没有在功能标记引用的封闭 Package 元素上声明
rescap
名称空间:无论你是否需要其他命名空间我都不能说,但是你所争论的受限制能力案例中涉及的关键是
xmlns:rescap
.来自documentation provided by Microsoft here的信息 .