Поделиться через


Получение списка отложенных фоновых задач (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Узнайте, как получить список фоновых задач, зарегистрированных в данный момент вашим приложением. Этот список включает фоновые задачи, зарегистрированные приложением во время предыдущих сеансов на переднем плане, поэтому вы можете выполнить проверку перед возможной многократной регистрацией фоновой задачи. Подробнее см. в разделе Регистрация фоновой задачи.

Что необходимо знать

Технологии

Необходимые условия

Инструкции

Этап 1:

Список фоновых задач, зарегистрированных приложением в данный момент, содержится в свойстве Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks. Используйте цикл while для переходов по этому списку и поиска имени фоновой задачи.

Например, для проверки того, не зарегистрирована ли уже выполняемая службой фоновая задача, прежде чем пытаться зарегистрировать ее, этот образец фоновой задачи использует следующий код:

//
// Check whether the servicing-complete background task is already registered.
//
var iter = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks.first();
var hascur = iter.hasCurrent;
while (hascur) {
    var cur = iter.current.value;
    if (cur.name === BackgroundTaskSample.servicingCompleteTaskName) {
        BackgroundTaskSample.updateBackgroundTaskStatus(BackgroundTaskSample.servicingCompleteTaskName, true);
        return;
    }
    hascur = iter.moveNext();
}

Этап 2:

Приложение, регистрирующее фоновые задачи, прежде всего ищет регистрации, выполняемые в нескольких ситуациях. Выполнение данной задачи можно облегчить, написав функцию, которая ищет фоновую задачу по ее имени. Если задача не найдена, функция вернет значение NULL, и таким образом ваше приложение может определить, нужно ли регистрировать задачу.

В приложении можно использовать следующую функцию:

// 
// Check for a registration of the named background task. If one exists,
// return it.
// 
function FindTask(taskName) {

    var taskRegistered = false;

    var background = Windows.ApplicationModel.Background;
    var iter = background.BackgroundTaskRegistration.allTasks.first();
    var hascur = iter.hasCurrent;

    while (hascur) {
        var cur = iter.current.value;

        if (cur.name === taskName) {

            // 
            // The task is registered, return it.
            // 

            return cur;
        }

        hascur = iter.moveNext();
    }

    // 
    // The task was not found. Return null.
    // 
    return null;
}

Связанные разделы

Краткое руководство: создание и регистрация фоновой задачи

Регистрация фоновой задачи

Обработка отмененной фоновой задачи

Отслеживание хода выполнения и завершения фоновых задач

Объявление фоновых задач в манифесте приложения

Отладка фоновой задачи

Руководство и контрольный список для фоновых задач