首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8.1后台任务在完成前关闭

Windows 8.1后台任务在完成前关闭
EN

Stack Overflow用户
提问于 2016-02-20 17:09:14
回答 3查看 331关注 0票数 5

我的后台任务需要很长时间才能完成,而操作系统正在扼杀它。我试图在网上同步我的联系人,下面是我正在做的事情:

  1. 从电话簿中获取所有联系人(耗时1秒)
  2. 将它们上传到服务器(~2秒)
  3. 从服务器检索所有联系人(~2-3秒)
  4. 从ContactStore中删除所有联系人(ContactStore.DeleteAsync有时需要1分钟才能完成)
  5. 创建一个ContactStore并导入所有联系人)(~1-2分钟用于1000个联系人)

我有100个联系人,而且运行良好,但我想用~1000个联系人进行测试,但并不是每次都能完成。我正在使用一个MaintenanceTrigger,但我认为它对于后台任务来说还是太多了,但我需要对此进行确认。应该允许MaintenanceTrigger任务执行更多的资源密集型任务,那么为什么操作系统会扼杀我的后台任务呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-24 08:53:44

看看这个链接:https://msdn.microsoft.com/en-us/library/windows/apps/hh202942(v=vs.105).aspx

资源密集型任务的持续时间限制为10分钟。

在启动任务之前,必须满足以下约束。如果设备停止满足这些约束,则立即终止代理。

  • 所需外部功率
  • 需要非蜂窝连接
  • 最小电池功率
  • 设备屏幕锁
  • 没有主动电话
  • 不能将网络更改为蜂窝

此外,对于低端/高端设备也有分别为11 of和20 of的存储器上限。

从你上面的描述来看,最有可能发生的情况是,我的记忆被击中了。也许这篇文章可以帮助您了解后台任务:如何在C#中获得可用或使用的内存的内存使用情况。

从Windows 8.1开始对内存限制的关键更改包括(找到这里):

  • 所有的Windows 8前台应用程序都是一样的。我们不再有不同的内存上限XNA,本机或银光应用程序。
  • Windows 8.1应用程序(包括Silverlight 8.1和Windows )的上限确实略高于Windows 8应用程序。
  • 所有应用程序类型的内存上限,包括连续后台执行(CBE),随着内存的增加而增加。
  • 不再有“默认”和“更高”上限--只有默认上限。
  • Windows 8.1上运行的所有应用程序都忽略ID_FUNCCAP_EXTEND_MEM清单条目。
  • ID_REQ_MEMORY_300清单条目仍然有效,但您确实应该让您的应用程序在所有设备上运行。
  • ID_REQ_MEMORY_300的新等价物如下。这个条目应该添加到AppX清单(而不是WMAppManifest)中。
票数 3
EN

Stack Overflow用户

发布于 2016-02-25 07:46:57

最后,我的任务被取消了,原因是ExecutionTimeExceeded,所以这就是问题所在。在ContactStore中试图导入~1000个联系人似乎需要12分钟,这对于后台任务来说太长了。我将不得不让用户打开应用程序并进行导入。谢谢你的帮助。

票数 3
EN

Stack Overflow用户

发布于 2016-02-24 09:05:52

呃..。也许很傻但是..。

“使用维护触发器的后台任务仅在系统连接到交流电源时才运行。”取自MSDN

当它工作的时候,它能被插到电源上吗?当它不工作的时候就不插上电源吗?

编辑:,当你尝试“同步”联系人时,你在考虑手机有多忙吗?你是在强迫这个应用程序通过电池保护程序在后台运行吗?

你可以做这样的事情看看你的手机有多忙.或者它可能是电池保护程序停止你的应用程序,如果下载大小等限制是达到…

从这里取走..。

代码语言:javascript
复制
var result = await BackgroundExecutionManager.RequestAccessAsync();

if (result == BackgroundAccessStatus.Denied)
{
    // Handle this if it is important for your app.
}

“如果结果被拒绝,手机认为它有太多的后台任务活动。在这种情况下,你可以提示你的用户去电池保护应用程序,并强制允许你的应用程序在后台运行,即使手机不想.”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35526361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档