Запланированное задание появляется дважды - PullRequest
2 голосов
/ 11 января 2012

Мне не удалось отправить заявку (я даже не смог пройти проверку загрузки), потому что мой фоновый агент создает два экземпляра, но я не могу понять, почему.

Вот метод, в 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));
}

Здесьэто вызов в Application_Launching:

private void Application_Launching(object sender, LaunchingEventArgs e)
{
      { RegisterBackgroundTask(); }
}

При первом запуске приложения я возвращаюсь назад, смотрю, и есть одна задача.Затем я снова запускаю, проходя через, и вызов удаления отключает задачу (вместо ее удаления).Когда он получает вызов add, он не только включает исходную задачу, но и добавляет другую.С этого момента, когда я возвращаюсь и перезапускаю приложение, при удалении один экземпляр отключается, а другой остается, а вызов Add снова включается.OldTask никогда не имеет значения null, за исключением случаев, когда после восстановления или удаления.

Если (oldTask == old) изначально не было, я добавил его, надеясь, что это предотвратит создание второго экземпляра.Иногда при удалении все еще остается фоновая задача, которая выключается, и мне приходится выключать и снова включать телефон, чтобы он ушел.

1 Ответ

10 голосов
/ 11 января 2012

У меня та же проблема с проектом, над которым я работаю.
По какой-то причине я задал фоновую задачу дважды в своем WMAppManifest.xml
Проверьте ваш WMAppManifest.xml и посмотрите, есть ли у вас его определение дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...