Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Cómo establecer condiciones para ejecutar una tarea en segundo plano (aplicaciones de la Tienda Windows con JavaScript y HTML)

Aprende cómo establecer condiciones para ejecutar tu tarea en segundo plano que ayudan a que se ejecute cuando corresponde. En ocasiones, las tareas en segundo plano requieren que se cumplan ciertas condiciones, además del evento que desencadena la tarea, para que la tarea en segundo plano se desarrolle correctamente. Puedes especificar una o más de las condiciones especificadas por SystemConditionType al registrar tu tarea en segundo plano. La condición se comprobará después de que se active el desencadenador; la tarea en segundo plano se pondrá en cola, pero no se ejecutará hasta que se satisfagan todas las condiciones.

Establecer condiciones sobre las tareas en segundo plano ahorra vida útil de batería y tiempo de ejecución de CPU evitando que las tareas se ejecuten innecesariamente. Por ejemplo, si una tarea en segundo plano se ejecuta en un temporizador y requiere conectividad a Internet, agrega la condición InternetAvailable a TaskBuilder antes de registrar la tarea. Esto ayudará a impedir que la tarea use recursos del sistema y consuma batería de forma innecesaria dejando que se ejecute cuando haya transcurrido el temporizador e Internet esté disponible.

Lo que debes saber

Tecnologías

Requisitos previos

  • En este tema se asume que ya tienes una tarea en segundo plano asociada con tu aplicación y que tu aplicación ya incluye código que crea un objeto BackgroundTaskBuilder llamado taskBuilder.

Instrucciones

Paso 1: Crear un objeto SystemCondition

Antes de agregar la condición, crea un objeto SystemCondition que representa la condición que debe estar vigente para que una tarea en segundo plano se ejecute. En el constructor, especifica la condición que debe cumplirse proporcionando un valor de enumeración SystemConditionType.

El siguiente código crea un objeto SystemCondition que especifica la disponibilidad de Internet como requisito condicional:


var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

Paso 2: Agregar el objeto SystemCondition a la tarea en segundo plano

Para agregar una condición, llama al método AddCondition en el objeto BackgroundTaskBuilder y pásalo al objeto SystemCondition.

El siguiente código registra la condición de tarea en segundo plano InternetAvailable con TaskBuilder:


taskBuilder.AddCondition(internetCondition);

Paso 3: Registrar tu tarea en segundo plano

Ahora ya puedes registrar tu tarea en segundo plano con el método Register y la tarea no comenzará hasta que no se satisfaga la condición especificada.

El siguiente código registra la tarea y almacena el objeto BackgroundTaskRegistration resultante:



var task = taskBuilder.Register();

Paso 4: Colocar varias condiciones en tu tarea en segundo plano

Para agregar varias condiciones, tu aplicación realiza varias llamadas al método AddCondition. Estas llamadas deben recibirse antes de que el registro de la tarea sea efectivo.

Nota  Ten cuidado de no agregar condiciones conflictivas a una tarea en segundo plano.

En el siguiente fragmento se muestran múltiples condiciones en el contexto de la creación y registro de una tarea en segundo plano:


var hourlyTrigger = new Windows.ApplicationModel.Background.TimeTrigger(60, false);

var recurringTaskBuilder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();

recurringTaskBuilder.Name = "Hourly background task for YourApp";
recurringTaskBuilder.TaskEntryPoint = "js\\ExampleBackgroundTask.js";
recurringTaskBuilder.SetTrigger(hourlytrigger);

//
// Begin adding conditions.
//
var userCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.UserPresent);
var internetCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemConditionType.InternetAvailable);

taskBuilder.AddCondition(userCondition);
taskBuilder.AddCondition(internetCondition);

//
// Done adding conditions. Now we register the background task.
//
var task = recurringTaskBuilder.Register();

Observaciones

Nota  Selecciona las condiciones adecuadas para tu tarea en segundo plano de forma que solo se ejecute cuando sea necesaria, y que no se ejecute cuando no vaya a funcionar. Consulta SystemConditionType para obtener descripciones de las diferentes condiciones de las tareas en segundo plano.

Temas relacionados

Inicio rápido: creación y registro de una tarea en segundo plano
Cómo registrar una tarea en segundo plano
Cómo responder a eventos del sistema con tareas en segundo plano
Cómo usar desencadenadores de mantenimiento
Cómo declarar tareas en segundo plano en el manifiesto de la aplicación
How to debug a background task
Directrices y listas de comprobación para tareas en segundo plano

 

 

Mostrar:
© 2018 Microsoft