如何获取待完成后台任务的列表 (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;
}

相关主题

快速入门:创建和注册后台任务

如何注册后台任务

如何处理取消的后台任务

如何监视后台任务进度和完成

如何在应用程序清单中声明后台任务

如何调试后台任务

后台任务指南和清单