3

使用 Lumia 920,看起来我的 OnInvoke 甚至在调试模式下也从未被调用过。调用从 ScheduledTaskAgent 继承的 ScheduledAgent 的构造函数。这意味着 WMAppManifest.xml 中的设置是正确的。

<Tasks>
  <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
  <ExtendedTask Name="BackgroundTask">
    <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="PeriodicAgent" Source="ScheduledPlaybackAgent" Type="ScheduledPlaybackAgent.ScheduledAgent" />
  </ExtendedTask>
</Tasks>

然后我几乎从示例代码中复制了:

    private void StartPeriodicAgent()
    {
        // Obtain a reference to the period task, if one exists
        periodicTask = ScheduledActionService.Find(periodicTaskName) as PeriodicTask;

        if (periodicTask != null)
        {
            RemoveAgent(periodicTaskName);
        }

        periodicTask = new PeriodicTask(periodicTaskName);

        periodicTask.Description = "This demonstrates a periodic task.";

        try
        {
            ScheduledActionService.Add(periodicTask);
        }
        catch (InvalidOperationException exception)
        {
        }
        catch (SchedulerServiceException)
        {
        }
    }

在前台应用程序启动并尽可能多地等待后,我故意切换到主屏幕。我的 ScheduledAgent::OnInvoke 仍然没有输出或断点

谢谢!

4

1 回答 1

3

您是否在 ScheduledAgent.cs 中定义了#define DEBUG_AGENT 并在 OnInvoke 中包含以下代码?

        #if(DEBUG_AGENT)
            ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(30));
            System.Diagnostics.Debug.WriteLine("Periodic task is started again: " + task.Name);
        #endif
于 2013-07-03T02:22:29.183 回答