Как использовать триггер технического обслуживания (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]
Сведения о том, как использовать класс MaintenanceTrigger для выполнения облегченного кода в фоновом режиме, когда устройство подключено к сети.
Что необходимо знать
Технологии
Необходимые условия
- Для изучения этого примера необходим облегченный код, который можно выполнить в фоновом режиме для усовершенствования вашего приложения, когда устройство подключено к сети. В этом разделе рассматривается класс MaintenanceTrigger, сходный с классом SystemTrigger в том, что приложение не должно быть на экране блокировки для регистрации фоновой задачи MaintenanceTrigger. Подробнее создание класса фоновой задачи описывается в разделе Краткое руководство: создание и регистрация фоновой задачи.
Инструкции
Этап 1: Создание объекта триггера обслуживания
Создайте новый объект MaintenanceTrigger. Второй параметр, OneShot, указывает, будет ли задача обслуживания выполняться однократно или периодически. Если OneShot имеет значение True, первый параметр (FreshnessTime) задает время ожидания (в минутах) перед планированием фоновой задачи. Если OneShot присвоено значение False, частоту выполнения фоновой задачи определяет параметр FreshnessTime.
Примечание Если параметру FreshnessTime задано значение меньше 15 минут, при попытке зарегистрировать фоновую задачу появляется исключение.
Этот пример кода создает триггер, запускаемый один раз в час:
var waitIntervalMinutes = 60;
var taskTrigger = new Windows.ApplicationModel.Background.MaintenanceTrigger(waitIntervalMinutes, false);
Этап 2: Добавление условия (необязательно)
При необходимости можно также добавить условие фоновой задачи, чтобы контролировать время запуска задачи. Условие не даст запустить фоновую задачу, пока это условие не будет выполнено. Подробнее см. в разделе Задание условий для выполнения фоновой задачи.
В этом примере устанавливается UserPresent, так что обслуживание выполняется, когда пользователь активен (или становится активным). Список возможных условий фоновых задач см. в разделе SystemConditionType.
Следующий код добавляет условие для построителя задачи обслуживания:
var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserAway);
Этап 3: Регистрация фоновой задачи
Зарегистрируйте фоновую задачу, вызвав функцию регистрации фоновой задачи. Подробнее о регистрации фоновых задач см. в разделе Регистрация фоновой задачи.
Следующий код регистрирует фоновую задачу:
var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Maintenance background task example”;
var task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);
Примечание
В приложениях магазина Windows Phone необходимо вызывать метод RequestAccessAsync перед регистрацией любой фоновой задачи. В Windows такой вызов требуется только для набора фоновых задач, для выполнения которых приложение должно находиться на экране блокировки, однако в Windows Phone вы должны один раз вызывать этот метод перед регистрацией любой фоновой задачи.
Чтобы приложение Windows Phone продолжало правильно работать после выпуска обновления, необходимо вызвать RemoveAccess, а затем RequestAccessAsync при запуске приложения после обновления. Дополнительная информация: Руководство по фоновым задачам (HTML).
Примечание
Начиная с Windows 8.1 параметры регистрации фоновых задач проверяются во время регистрации. Если какие-либо из параметров регистрации недопустимы, возвращается ошибка. Если фоновая задача не прошла регистрацию, приложение должно выполнить соответствующее действие — например, применить условный оператор для проверки наличия ошибок регистрации и затем повторить попытку регистрации с другими значениями параметров.
Замечания
События-триггеры обслуживания не активируются, если устройство не подключено к сети.
Примечание Если устройство отключено, то все работающие в настоящий момент фоновые задачи, которые были запущены триггером MaintenanceTrigger, отменяются (cancelReason = Abort). Если фоновая задача не отменяется в течение 5 секунд с момента получения события отмены фоновой задачи, она будет прервана. Подробнее см. в разделе Обработка фоновой задачи.
Связанные разделы
Краткое руководство: создание и регистрация фоновой задачи
Реагирование на системные события с помощью фоновых задач
Задание условий для выполнения фоновой задачи