2

我浏览了以下文档来创建后台定期任务:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202941(v=vs.105).aspx

出于某种原因,我从来没有看到它运行。(从某种意义上说,SchedulerTaskAgent.cs 类中的 OnInvoke() 方法从未被调用过)

打开调试器后,我可以使用以下方法调用该方法:

if(DEBUG_AGENT)
    ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));
#endif

它每 60 秒运行一次。我看到我添加到 OnInvoke() 的调试语句每分钟(60 秒)打印一次。

然后我注释掉上面的行来测试是否 OnInvoke() 有时被操作系统调用(比如每 30 分钟左右)。

它从未被调用过。我将手机连接到我的 Windows 电脑,手机充满电,但没有连接到 Wifi,而是连接到蜂窝网络。

我不确定为什么它没有被触发。我昨天尝试了一整天(在 30 分钟到一个小时之间至少等待了 6 到 8 次)。

如何在无法使用的现实场景中测试定期任务:ScheduledActionService.LaunchForTest(...)

我的手机只是闲置,我使用的手机是专门用于测试的(我没有在后台运行任何应用程序,蜂窝网络信号非常好,电池电量高达 100%)。

此外,周期性任务只是打印一些消息,而不是进行任何网络或资源密集型活动。

谢谢你的时间。

4

1 回答 1

0

尝试在 if 前面添加一个井号。例如。

#if(DEBUG_AGENT)
ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));
#endif
于 2013-11-04T02:47:23.713 回答