我试图从微软那里跟随example,最好我可以告诉我做了所有事情,除了将ScheduledTaskAgent和PeriodicTask放在一个单独的程序集中。当我在模拟器中运行我的应用程序并尝试使用以下方式启动Periodic任务时:
ScheduledActionService.LaunchForTest(_task.Name,TimeSpan.FromSeconds(60));
没有任何事情发生,没有例外,一分钟后ScheduledTaskAgent永远不会启动,当我在模拟器上查看“设置>后台任务”时,没有列出任何内容。
答案 0 :(得分:9)
是的,他们需要在一个单独的程序集中,您需要在WMAppManifest.xaml
中引用它,如下所示:
<Tasks>
<DefaultTask Name="_default" NavigationPage="Views/MainPage.xaml" />
<ExtendedTask Name="BackgroundTask">
<BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="DMI.ScheduledAgent" Source="DMI.TaskAgent" Type="DMI.TaskAgent.ScheduledAgent" />
</ExtendedTask>
您可以在MSDN上阅读BackgroundServiceAgent
属性的正确值。
如果您使用Visual Studio Windows Phone预设任务代理模板,BackgroundServiceAgent
任务会自动添加到WMAppManifest.xaml
中,并且值正确。