我正在使用后台代理处理Windows Phone 7应用程序来更新Live Tile。我遇到的问题与禁用和重新启用后台代理有关。用户可以在设置(设置 - 应用程序 - 后台任务)下禁用特定应用程序的后台代理。
如果后台代理被禁用,如果我尝试使用以下代码安排代理,则会收到InvalidOperationException的预期行为,并显示消息“ BNS错误:操作已禁用”: / p>
ScheduledActionService.LaunchForTest(PeriodicTaskName, TimeSpan.FromSeconds(20));
如果用户返回设置菜单并勾选复选框“下次打开时将该应用程序的后台任务重新打开”我仍然会遇到相同的异常。
所以我的问题是如何执行已重新启用的任务?
MSDN documentation描述了已禁用任务的行为,但现在又说明了如何再次启用它们。
答案 0 :(得分:0)
首先,您不应在调试方案之外调用ScheduledActionService.LaunchForTest
。
其次,只有3个理由可以禁用计划任务
NotifyComplete()
,因此已被禁用。在3的情况下,您必须重新创建任务。这通常意味着用户从您的应用程序重新创建实时磁贴。当然不是推荐!
因此,我建议您查看代码并确保NotifyComplete()
始终被调用,并停止使用ScheduledActionService.LaunchForTest
。