Windows phone 8 什么可以防止ScheduledTaskAgent在意外情况下多次开火?
我已经设置了一个调度的taskagent和一个启动fortest(我知道它正在被调用)。当我启动主应用程序时,它似乎成功地添加了任务,并且OnInvoke运行完成(调用NotifyComplete),但似乎再也不会运行了。我已经减少了OnInvoke的功能,除了调用NotifyComplete之外,什么也不做,但是它仍然只在ScheduledActionService.Add和ScheduledActionService.LaunchForTest之后运行一次(延迟几秒钟) 什么会阻止它多次运行?我假设它是关于PeriodicTask的 你说得对。它将只运行一次,这是因为LaunchForTest调用指定了timespan。执行之后,您必须再等待30分钟,它才能运行Windows phone 8 什么可以防止ScheduledTaskAgent在意外情况下多次开火?,windows-phone-8,background-agents,Windows Phone 8,Background Agents,我已经设置了一个调度的taskagent和一个启动fortest(我知道它正在被调用)。当我启动主应用程序时,它似乎成功地添加了任务,并且OnInvoke运行完成(调用NotifyComplete),但似乎再也不会运行了。我已经减少了OnInvoke的功能,除了调用NotifyComplete之外,什么也不做,但是它仍然只在ScheduledActionService.Add和ScheduledActionService.LaunchForTest之后运行一次(延迟几秒钟) 什么会阻止它多次运行
是否在App.xaml.cs中添加ScheduledActionService.Add?我是说,在发布会上?你应该。如果你有,那么你可以再次运行该应用程序,它将调用任务代理。如果你碰到断点,即使是一次,这意味着你已正确设置。您必须记住,
ScheduledActionService.LaunchForTest
只是一个可以在调试器下调用的函数。当应用程序发布时,它将不起作用
基本上,没有办法启动后台代理,您可以注册它,然后忘记它。Windows Phone操作系统将定期调用它
如果要多次调试周期性任务,则可以将
LaunchForTest
放入延迟循环中 发现问题:要使计划的代理在较短的时间内重复(用于测试),#如果调试ScheduledActionService.LaunchForTest(task.Name,TimeSpan.FromSeconds(30))#endif
必须同时位于应用程序启动(例如应用程序构造函数)和代理OnInvoke中。仅仅在应用程序发布中使用它是不够的。