我通过以下文档创建了一个后台定期任务:
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,而是连接到蜂窝网络。
我不确定为什么不触发它。我昨天尝试了整整一天(至少在3到30分钟之间等待6到8次)。
如何在我无法使用的真实场景中测试周期性任务:ScheduledActionService.LaunchForTest(...)
我的手机只是闲置,我使用的手机专用于测试(我没有在后台运行任何应用程序,蜂窝网络信号非常好,电池电量高达100%)。
此外,周期性任务只是打印一些消息而不会进行任何网络或资源密集型活动。
感谢您的时间。
答案 0 :(得分:0)
尝试在if前添加一个英镑符号。 例如
#if(DEBUG_AGENT)
ScheduledActionService.LaunchForTest(periodicTaskName, TimeSpan.FromSeconds(60));
#endif