7

我试着从微软的这个例子中学习,我可以说我做了所有事情,除了把 ScheduledTaskAgent 和 PeriodicTask 放在一个单独的程序集中。当我在模拟器中运行我的应用程序并尝试使用以下命令启动定期任务时:
ScheduledActionService.LaunchForTest(_task.Name, TimeSpan.FromSeconds(60));
什么都没有发生,没有例外,一分钟后,ScheduledTaskAgent 永远不会启动,当我在模拟器的“设置 > 后台任务”下查看时,没有列出任何内容。

4

1 回答 1

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到正确的值中。

于 2011-08-10T22:41:37.903 回答