计划任务出现两次

Ric*_*ins 2 windows-phone-7 windows-phone-7.1

我提交失败(甚至无法通过上传验证),因为我的后台代理创建了两个实例,但我无法弄清楚原因.

这是app.xaml.cs中的方法(我也尝试将它定位在MainPageVM.cs和MainPage.xaml.cs中,结果相同)

private void RegisterBackgroundTask()
{
    var taskName = "xxUpdater";
    var oldTask = ScheduledActionService.Find(taskName) as PeriodicTask;
    if (oldTask != null)
    {
        ScheduledActionService.Remove(taskName);
    }
    PeriodicTask task = new PeriodicTask(taskName);
    task.Description = Strings.xxBackgroundTaskDescription;
    oldTask = ScheduledActionService.Find(taskName) as PeriodicTask;
    if (oldTask == null)
    {
        ScheduledActionService.Add(task);                 
    }
    //ScheduledActionService.LaunchForTest(taskName, TimeSpan.FromSeconds(60));
}
Run Code Online (Sandbox Code Playgroud)

这是在Application_Launching中的调用:

private void Application_Launching(object sender, LaunchingEventArgs e)
{
      { RegisterBackgroundTask(); }
}
Run Code Online (Sandbox Code Playgroud)

应用程序第一次运行时,我退出,查看,并且有一项任务.然后我再次运行,单步执行,删除调用关闭任务(而不是删除它).当它进入add调用时,它不仅会打开原始任务,而且还会添加另一个.从那时起,当我退出并重新启动应用程序时,删除将关闭一个实例,然后离开另一个实例,并且Add调用将其重新打开.除非在重建或卸载之后,否则oldTask为null.

if(oldTask == old)最初并不存在,我添加它希望它会阻止第二个实例的创建.有时,当我卸载时,仍然有一个后台任务被关闭,我必须关闭手机并重新打开它才能让它消失.

Jim*_*röm 10

我正在处理的项目遇到同样的问题.
出于某种原因,我在我的WMAppManifest.xml中定义了两次后台任务.
检查WMAppManifest.xml并查看是否还定义了两次.