Cómo declarar tareas en segundo plano en el manifiesto de la aplicación
Idioma: HTML | XAML

Cómo declarar tareas en segundo plano en el manifiesto de la aplicación (XAML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Habilita el uso de tareas en segundo plano declarándolas como extensiones en el manifiesto de la aplicación. Cada tarea en segundo plano debe declararse como extensión en el manifiesto de la aplicación. Sin esto, tu aplicación no podrá registrar las tareas en segundo plano (se generará una excepción). Además, las tareas en segundo plano deben declararse en el manifiesto de la aplicación para pasar la certificación.

Lo que debes saber

Tecnologías

  • Diseñador de manifiestos de Microsoft Visual Studio

Requisitos previos

  • Este tema supone que has creado una o más clases de tareas en segundo plano y que tu aplicación registra cada tarea en segundo plano para ejecutar en respuesta a, al menos, un desencadenador.

Instrucciones

Paso 1: Agregar extensiones manualmente

Abre el manifiesto de la aplicación y ve al elemento Application. Crea un elemento Extensions (si no existe uno ya).

El siguiente fragmento de código se toma de BackgroundTaskSample:



    <Application Id="BackgroundTaskSample.App" Executable="BackgroundTaskSample.exe" EntryPoint="BackgroundTaskSample.App">
      <VisualElements DisplayName="BackgroundTaskSample" Logo="Images\squareTile-sdk.png" SmallLogo="Images\smallTile-sdk.png" Description="BackgroundTaskSample" ForegroundText="dark" BackgroundColor="#222222">
        <LockScreen Notification="badgeAndTileText" BadgeLogo="images\badgelogo.png" />
        <DefaultTile ShowName="allLogos" WideLogo="images\tile-sdk.png" />
        <SplashScreen Image="Images\splash-sdk.png" BackgroundColor="#FFFFFF" />
      </VisualElements>

      <Extensions>

          <!-- TODO: Add elements here -->

      </Extensions>

    </Application>


Paso 2: Agregar extensión de tarea en segundo plano

Declara tu primera tarea en segundo plano.

Copia este código al elemento Extensions (agregarás atributos en los siguientes pasos).



      <Extensions>

        <Extension Category="windows.backgroundTasks" EntryPoint="">
          <BackgroundTasks>
            <Task Type="" />
          </BackgroundTasks>
        </Extension>

      </Extensions>

  1. Cambia el atributo EntryPoint para que tenga la misma cadena que usó tu código como punto de entrada al registrar la tarea en segundo plano (namespace.classname).

    En este ejemplo, el punto de entrada es ExampleBackgroundTaskNameSpace.ExampleBackgroundTaskClassName:

    
          <Extensions>
    
            <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.ExampleBackgroundTaskClassName">
              <BackgroundTasks>
                <Task Type="" />
              </BackgroundTasks>
            </Extension>
    
          </Extensions>
    
    
  2. Cambia la lista del atributo Task Type para indicar el tipo de registro de tareas usado con esta tarea en segundo plano. Si la tarea en segundo plano se registra con varios tipos de desencadenadores, agrega elementos Task y atributos Type adicionales para cada uno.

    Nota  Asegúrate de incluir en la lista todos los tipos de desencadenadores que estás usando, o la tarea en segundo plano no se registrará con los tipos de desencadenadores no declarados (el método Register generará un error y lanzará una excepción).
     

    Este ejemplo de fragmento de código indica el uso de desencadenadores de eventos del sistema y de notificaciones de inserción:

    
            <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.BackgroundTaskClass">
              <BackgroundTasks>
                <Task Type="systemEvent" />
                <Task Type="pushNotification" />
              </BackgroundTasks>
            </Extension>
    
    
    Nota  Normalmente, una aplicación se ejecutará en un proceso especial llamado "BackgroundTaskHost.exe". Se puede agregar un elemento Executable al elemento Extension, lo cual permite a la tarea en segundo plano ejecutarse en el contexto de la aplicación. Usa el elemento Executable únicamente con tareas en segundo plano que lo requieran, como por ejemplo el ControlChannelTrigger.
     

Paso 3: Agregar extensiones adicionales de tareas en segundo plano

Repite el paso 2 para todas las clases de tareas en segundo plano que haya registrado tu aplicación.

El siguiente ejemplo es el elemento Application completo de la muestra de tarea en segundo plano. Este muestra el uso de 2 clases de tareas en segundo plano con un total de 3 tipos de desencadenadores. Copia la sección Extensions de este ejemplo y modifícala conforme sea necesario para declarar tareas en segundo plano en tu manifiesto de la aplicación.


<Application Id="BackgroundTask.App" Executable="$targetnametoken$.exe" EntryPoint="BackgroundTask.App">
  <VisualElements DisplayName="BackgroundTask CS sample" Logo="Assets\squareTile-sdk.png" SmallLogo="Assets\smallTile-sdk.png" Description="BackgroundTask CS sample" ForegroundText="light" BackgroundColor="#00b2f0">
    <LockScreen Notification="badgeAndTileText" BadgeLogo="Assets\badgelogo.png" />
    <DefaultTile ShowName="allLogos" ShortName="BGTask CS" WideLogo="Assets\tile-sdk.png" />
    <SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
  </VisualElements>
  <Extensions>
    <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.SampleBackgroundTask">
      <BackgroundTasks>
        <Task Type="systemEvent" />
        <Task Type="timer" />
      </BackgroundTasks>
    </Extension>
    <Extension Category="windows.backgroundTasks" EntryPoint="Tasks.ServicingComplete">
      <BackgroundTasks>
        <Task Type="systemEvent" />
      </BackgroundTasks>
    </Extension>
  </Extensions>
</Application>

Observaciones

Nota  Si estás escribiendo una aplicación compatible con la pantalla de bloqueo, también debes incluir elementos LockScreen en la sección VisualElements tal como se describe en el tema sobre cómo mostrar notificaciones en la pantalla de bloqueo.
 

Temas relacionados

Declaraciones de funcionalidades de aplicación
Cómo crear un manifiesto de paquetes manualmente
Cómo registrar una tarea en segundo plano
Cómo depurar una tarea en segundo plano
Directrices y listas de comprobación para tareas en segundo plano

 

 

Mostrar:
© 2018 Microsoft