Проблема с повторным включением отключенных фоновых агентов в Windows Phone 7 Mango - PullRequest
2 голосов
/ 05 сентября 2011

Я работаю над приложением Windows Phone 7, используя background-agent для обновления Live Tile.Проблема, с которой я столкнулся, связана с отключением и повторным включением фонового агента.У пользователей есть возможность отключить фоновые агенты для конкретного приложения в настройках (Настройки - Приложения - Фоновые задачи).

Если фоновый агент отключен, я получаю ожидаемое поведение исключения InvalidOperationException с сообщением " Ошибка BNS: действие отключено", если я пытаюсь запланировать агент, используя следующий код:

ScheduledActionService.LaunchForTest(PeriodicTaskName, TimeSpan.FromSeconds(20));      

Если пользователь возвращается в меню настроек и ставит флажок" Включите фоновые задачи для этого приложения в следующий раз, когда я открою его"Я все еще получаю то же исключение.

Итак, мой вопрос, как мне выполнить задачу, которая была повторно включена?

Документация MSDN описывает поведение отключенных задач, но теперь как их снова включить.

1 Ответ

0 голосов
/ 05 сентября 2011

Во-первых, вы не должны вызывать ScheduledActionService.LaunchForTest вне сценария отладки.

И, во-вторых, есть только 3 причины, по которым запланированное задание можно отключить

  1. Пользовательотключил его вручную
  2. Телефон разрядился и начал использовать Battery Saver.Задача будет повторно активирована при следующем запуске приложения, когда будет достаточно питания.
  3. Ваша задача не вызывала NotifyComplete(), и поэтому она была отключена.

В случае 3. Вы должны заново создать задачу.Что обычно означает, что пользователь заново создает live-плитку из вашего приложения.Конечно, это не рекомендация!

Поэтому я предлагаю вам пройтись по своему коду и убедиться, что NotifyComplete() всегда вызывается *, а также прекратить использовать ScheduledActionService.LaunchForTest.

...