Windows phone 8 我的定期任务就是不起作用

Windows phone 8 我的定期任务就是不起作用,windows-phone-8,background-process,Windows Phone 8,Background Process,连接到调试器时,它运行正常。定期任务会被调用并反复运行,但当我将其部署到设备上时,它似乎会运行1-2次,然后停止 它所做的是设置独立存储中的实时磁贴背景图像。图像在应用程序中创建,然后保存到独立存储中。如前所述,它在连接到调试器时工作良好 唯一能打破它的是内存上限。应用程序创建并保存40个图像,每个图像大小约为25kB,而不是1MB!应用程序可能在连续两次崩溃后未计划定期任务。您需要确保不会发生这种情况(如果需要,请检查internet连接,设置web请求超时等) 您应该将代码放在try/cat

连接到调试器时,它运行正常。定期任务会被调用并反复运行,但当我将其部署到设备上时,它似乎会运行1-2次,然后停止

它所做的是设置独立存储中的实时磁贴背景图像。图像在应用程序中创建,然后保存到独立存储中。如前所述,它在连接到调试器时工作良好


唯一能打破它的是内存上限。应用程序创建并保存40个图像,每个图像大小约为25kB,而不是1MB!应用程序可能在连续两次崩溃后未计划定期任务。您需要确保不会发生这种情况(如果需要,请检查internet连接,设置web请求超时等)

您应该将代码放在try/catch块中,并将异常记录在隔离存储中,以查看随后发生的情况

以下是适用于计划代理(MSDN)的约束列表:


这里还有一系列可以帮助您的博客帖子:

在连续两次崩溃后,周期性任务是不计划的。您需要确保不会发生这种情况(如果需要,请检查internet连接,设置web请求超时等)

您应该将代码放在try/catch块中,并将异常记录在隔离存储中,以查看随后发生的情况

以下是适用于计划代理(MSDN)的约束列表:


这里还有一系列可以帮助您的博客帖子:

您是否实际测量并记录了正在使用的内存?你说的不太正确:

  • 后台代理启动时,从.NET framework加载所需的内容已经花费了5-6MB的时间
  • 如果您的意思是每个压缩文件为25KB,那么您应该知道内存中的图像没有被压缩(至少没有那么多)
  • 有两件事你可以试试:

  • 使用此属性并检查峰值内存使用率:。将其写入某个文件(可能每5张左右),然后检查是否正常。请粘贴结果

    注意:在测试内存使用情况时,最好在“Release”中构建应用程序,并在设备上不进行调试的情况下运行它。这是最准确的。有一些小的变化,所以您应该运行代理几次,以确保它在限制范围内工作。您可以使用从应用程序强制启动它

  • 另外,我建议您订阅该事件并将所有异常标记为已处理(并记录它们,以便您可以修复它们)。那是为了额外的安全


  • 另外,当后台代理停止执行时,它是否在设备上的后台任务列表中被“阻止”?

    您是否实际测量并记录了正在使用的内存?你说的不太正确:

  • 后台代理启动时,从.NET framework加载所需的内容已经花费了5-6MB的时间
  • 如果您的意思是每个压缩文件为25KB,那么您应该知道内存中的图像没有被压缩(至少没有那么多)
  • 有两件事你可以试试:

  • 使用此属性并检查峰值内存使用率:。将其写入某个文件(可能每5张左右),然后检查是否正常。请粘贴结果

    注意:在测试内存使用情况时,最好在“Release”中构建应用程序,并在设备上不进行调试的情况下运行它。这是最准确的。有一些小的变化,所以您应该运行代理几次,以确保它在限制范围内工作。您可以使用从应用程序强制启动它

  • 另外,我建议您订阅该事件并将所有异常标记为已处理(并记录它们,以便您可以修复它们)。那是为了额外的安全


  • 注意:当后台代理停止执行时,它是否在设备上的后台任务列表中被“阻止”?

    首先,您是否碰巧使用了Windows 8.1 phone?由于定期任务存在问题,因此不能在windows phone 8.1设备上运行,正如您在本页上看到的那样

    后台代理使用的内存不能超过6MB。您可以使用以下代码段获取当前内存使用情况:

    var memory = DeviceStatus.ApplicationMemoryUsageLimit  
    - DeviceStatus.ApplicationCurrentMemoryUsage;
    

    操作系统每30分钟自动执行一次
    每次运行操作不能超过25秒
    如果手机切换到节电模式,后台代理可能不会执行
    在某些设备上,只能同时计划6个后台代理
    代理不能使用超过6MB的内存
    代理必须每两周重新规划一次

    系统会自动禁用两次崩溃的代理。首先,您是否碰巧使用了Windows 8.1 phone?由于定期任务存在问题,因此不能在windows phone 8.1设备上运行,正如您在本页上看到的那样

    后台代理使用的内存不能超过6MB。您可以使用以下代码段获取当前内存使用情况:

    var memory = DeviceStatus.ApplicationMemoryUsageLimit  
    - DeviceStatus.ApplicationCurrentMemoryUsage;
    

    操作系统每30分钟自动执行一次
    每次运行操作不能超过25秒
    如果手机切换到节电模式,后台代理可能不会执行
    在某些设备上,只能同时计划6个后台代理
    代理不能使用超过6MB的内存
    代理必须每两周重新规划一次

    系统会自动禁用两次崩溃的代理

    是否始终调用方法?NotifyComplete是在外部定义的,在try/catch之后,始终调用并修复它?你没有回答我的回答。后台代理被阻止了吗?还是根本不起作用?另外,您是否正在后台代理中创建图像?如果是这样的话,4MB内存似乎太低了。这是峰值内存吗?你说你正在创建40个图像。这是大量的图像创建。这些是如何创建的?您总是调用方法吗?NotifyComplete是在try/catch和之后定义的