【问题标题】:Does the ScheduledTaskAgent and PeriodicTask need to be in a seperate assembly from the main app?ScheduledTaskAgent 和 PeriodicTask 是否需要与主应用程序位于单独的程序集中?
【发布时间】:2011-08-10 22:38:49
【问题描述】:

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

【问题讨论】:

    标签: windows-phone-7 windows-phone-7.1


    【解决方案1】:

    是的,它们需要在单独的程序集中,您需要在您的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。

    【讨论】:

    • 所以我将它拆分为一个单独的程序集,我看到它列在“设置 > 后台任务”中,但仍然没有发生任何事情。我需要做一些特别的事情来调试 ScheuledTaskAgent 吗?
    • 1 分钟是一段非常长的时间。尝试将其设置为 0。不,没什么特别的,应该可以正常工作。尝试使用 Toast 来查看它是否真的在运行 ShellTask​​!
    • 谢谢克劳斯,我在 Manifest 中有错误的类名,它现在可以工作了。
    • Visual Studio 没有自动为我添加参考。这是使它工作的最后一个细节......右键单击您的应用程序的项目并点击添加引用,然后选择您的后台代理项目将其添加为参考。这也会为您添加正确的 xml 语句。
    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2010-12-11
    • 2012-09-08
    相关资源
    最近更新 更多