2

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

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

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

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

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

MSDN 文档描述了禁用任务的行为,但现在如何再次启用它们。

4

1 回答 1

0

首先,您不应该ScheduledActionService.LaunchForTest在调试场景之外调用。

其次,可以禁用计划任务只有 3 个原因

  1. 用户手动禁用它
  2. 手机没电了,开始使用省电模式。该任务将在您下次启动应用程序时重新启用,此时电源充足。
  3. 你的任务没有调用NotifyComplete(),因此它被禁用了。

在 3. 的情况下,您必须重新创建任务。这通常意味着用户从您的应用程序重新创建动态磁贴。当然不是推荐!

所以我建议你检查你的代码并确保它NotifyComplete()总是调用,以及停止使用ScheduledActionService.LaunchForTest.

于 2011-09-05T12:33:36.773 回答