语言: HTML | XAML

如何获取待完成后台任务的列表 (XAML)

Applies to Windows and Windows Phone

介绍如何获取你的应用当前注册的后台任务列表。 此列表包含之前的前台会话期间应用注册的后台任务,以便你可以在潜在的多次重新注册后台任务前进行检查。有关详细信息,请参阅如何注册后台任务

你需要了解的内容

技术

先决条件

说明

步骤 1:

应用程序当前已注册的后台任务列表位于 BackgroundTaskRegistration.AllTasks 属性中。

以下代码展示如何对 AllTasks 属性进行迭代:


foreach (var cur in BackgroundTaskRegistration.AllTasks)
{
    // TODO: Perform operations relevant to registered background tasks, such as registering event handlers.
}

步骤 2:

获取应用程序当前注册的后台任务列表对应用程序本身没有什么帮助 - 你将希望应用借助该信息做些有用的事情。有关详细信息,请参阅下面的示例代码段,还请参阅如何监视后台任务进度和完成

例如,后台任务示例使用以下代码在尝试注册之前,检查 SampleBackgroundTask(没有条件)是否已注册:


/// <summary>
/// Registers a background task for the servicing-complete system event.
/// This event occurs when the application is updated.
/// </summary>
public static void RegisterServicingCompleteTask()
{
    //
    // Check whether the servicing-complete background task is already registered.
    //
    foreach (var cur in BackgroundTaskRegistration.AllTasks)
    {
        if (cur.Value.Name == ServicingCompleteTaskName)
        {
            //
            // The task is already registered.
            //
            UpdateBackgroundTaskStatus(ServicingCompleteTaskName, true);
            return;
        }
    }

    //
    // The servicing-complete background task is not already registered.
    //
    RegisterBackgroundTask(ServicingCompleteTaskEntryPoint,
                            ServicingCompleteTaskName,
                            new SystemTrigger(SystemTriggerType.ServicingComplete, false),
                            null);
}

步骤 3:

用来注册后台任务的应用可能会在多种情况下查找注册。你可以通过创建一个根据名称查找后台任务的函数来简化此任务。例如,如果此函数找不到所需的任务,它会返回 null,以便你的应用可以确定是否注册此任务。

下面的函数可以用在你的应用中:


// 
// Check for a registration of the named background task. If one exists,
// return it.
// 
public static BackgroundTaskRegistration FindTask(string taskName)
{
    foreach (var cur in BackgroundTaskRegistration.AllTasks)
    {
        if (cur.Value.Name == taskName)
        {
            // 
            // The task is registered, return it.
            // 
                    
            return (BackgroundTaskRegistration)cur.Value;
        }
    }
    

    // 
    // The task was not found. Return null.
    // 

    return null;
}

相关主题

快速入门:创建和注册后台任务
如何注册后台任务
如何处理取消的后台任务
如何监视后台任务进度和完成
如何在应用程序清单中声明后台任务
How to debug a background task
后台任务指南和清单

 

 

显示:
© 2014 Microsoft