在Windows Phone 7 Mango上重新启用已禁用的后台代理的问题

时间:2011-09-05 07:20:22

标签: windows-phone-7 background-agents

我正在使用后台代理处理Windows Phone 7应用程序来更新Live Tile。我遇到的问题与禁用和重新启用后台代理有关。用户可以在设置(设置 - 应用程序 - 后台任务)下禁用特定应用程序的后台代理。

如果后台代理被禁用,如果我尝试使用以下代码安排代理,则会收到InvalidOperationException的预期行为,并显示消息“ BNS错误:操作已禁用”: / p>

ScheduledActionService.LaunchForTest(PeriodicTaskName, TimeSpan.FromSeconds(20));      

如果用户返回设置菜单并勾选复选框“下次打开时将该应用程序的后台任务重新打开”我仍然会遇到相同的异常。

所以我的问题是如何执行已重新启用的任务?

MSDN documentation描述了已禁用任务的行为,但现在又说明了如何再次启用它们。

1 个答案:

答案 0 :(得分:0)

首先,您不应在调试方案之外调用ScheduledActionService.LaunchForTest

其次,只有3个理由可以禁用计划任务

  1. 用户手动禁用
  2. 手机电量耗尽,开始使用省电模式。下次启动应用程序时,当有足够的电源时,该任务将重新启用。
  3. 您的任务未调用NotifyComplete(),因此已被禁用。
  4. 在3的情况下,您必须重新创建任务。这通常意味着用户从您的应用程序重新创建实时磁贴。当然不是推荐!

    因此,我建议您查看代码并确保NotifyComplete() 始终被调用,并停止使用ScheduledActionService.LaunchForTest