Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las APIs importantes
Aprenda a crear una tarea en segundo plano que responda a eventos de SystemTrigger.
En este tema se supone que tiene una clase de tarea en segundo plano escrita para la aplicación y que esta tarea debe ejecutarse en respuesta a un evento desencadenado por el sistema, como cuando cambia la disponibilidad de Internet o el usuario inicia sesión. Este tema se centra en la clase SystemTrigger. Puede encontrar más información sobre cómo escribir una clase de tarea en segundo plano en Crear y registrar una tarea en segundo plano en proceso o Crear y registrar una tarea en segundo plano fuera de proceso.
Creación de un objeto SystemTrigger
En el código de la aplicación, cree un nuevo objeto SystemTrigger. El primer parámetro, triggerType, especifica el tipo de desencadenador de eventos del sistema que activará esta tarea en segundo plano. Para obtener una lista de tipos de eventos, consulte SystemTriggerType.
El segundo parámetro, OneShot, especifica si la tarea en segundo plano se ejecutará solo una vez la próxima vez que se produzca el evento del sistema o cada vez que se produzca el evento del sistema hasta que se anule el registro de la tarea.
El código siguiente especifica que la tarea en segundo plano se ejecuta cada vez que Internet esté disponible:
SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
Windows::ApplicationModel::Background::SystemTrigger internetTrigger{
Windows::ApplicationModel::Background::SystemTriggerType::InternetAvailable, false};
SystemTrigger ^ internetTrigger = ref new SystemTrigger(SystemTriggerType::InternetAvailable, false);
Registrar tarea en segundo plano
Registre la tarea en segundo plano llamando a la función de registro de tareas en segundo plano. Para obtener más información sobre cómo registrar tareas en segundo plano, vea Registrar una tarea en segundo plano.
El código siguiente registra la tarea en segundo plano para un proceso en segundo plano que se ejecuta fuera de proceso. Si estaba llamando a una tarea en segundo plano que se ejecuta en el mismo proceso que la aplicación host, no establecería entrypoint
:
string entryPoint = "Tasks.ExampleBackgroundTaskClass"; // Namespace name, '.', and the name of the class containing the background task
string taskName = "Internet-based background task";
BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
std::wstring entryPoint{ L"Tasks.ExampleBackgroundTaskClass" }; // don't set for in-process background tasks.
std::wstring taskName{ L"Internet-based background task" };
Windows::ApplicationModel::Background::BackgroundTaskRegistration task{
RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition) };
String ^ entryPoint = "Tasks.ExampleBackgroundTaskClass"; // don't set for in-process background tasks
String ^ taskName = "Internet-based background task";
BackgroundTaskRegistration ^ task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
Nota:
Las aplicaciones de la Plataforma universal de Windows deben llamar a RequestAccessAsync antes de registrar cualquiera de los tipos de desencadenador en segundo plano.
Para asegurarse de que la aplicación universal de Windows sigue ejecutándose correctamente después de publicar una actualización, debes llamar a RemoveAccess y, a continuación, llamar a RequestAccessAsync cuando la aplicación se inicie después de actualizarse. Para obtener más información, vea las directrices para tareas en segundo plano.
Nota:
Los parámetros de registro de tareas en segundo plano se validan en el momento del registro. Se devuelve un error si alguno de los parámetros de registro no es válido. Asegúrese de que su aplicación maneja adecuadamente los escenarios en los que falla el registro de tareas en segundo plano. Si, en cambio, su aplicación depende de tener un objeto de registro válido después de intentar registrar una tarea, podría bloquearse.
Observaciones
Para ver el registro de tareas en segundo plano en acción, descargue el ejemplo de tarea en segundo plano .
Las tareas en segundo plano se pueden ejecutar en respuesta a eventos de SystemTrigger y MaintenanceTrigger, pero aún necesita Declarar tareas en segundo plano en el manifiesto de aplicación. También debe llamar a RequestAccessAsync antes de registrar cualquier tipo de tarea en segundo plano.
Las aplicaciones pueden registrar tareas en segundo plano que respondan a eventos TimeTrigger, PushNotificationTriggery NetworkOperatorNotificationTrigger eventos, lo que les permite proporcionar comunicación en tiempo real con el usuario incluso cuando la aplicación no está en primer plano. Para obtener más información, consulte Apoye su aplicación con tareas en segundo plano.
Temas relacionados
- Crear y registrar una tarea en segundo plano fuera de proceso
- Crear y registrar una tarea en segundo plano en ejecución
- Declarar tareas en segundo plano en el manifiesto de aplicación
- Controlar una tarea en segundo plano cancelada
- Supervisar el progreso y la finalización de la tarea en segundo plano
- Registrar una tarea de segundo plano
- Establecer condiciones para ejecutar una tarea en segundo plano
- Actualizar un icono activo desde una tarea en segundo plano
- Utilice un desencadenante de mantenimiento
- Ejecutar una tarea en segundo plano en un temporizador
- Directrices para tareas en segundo plano
- Depurar una tarea en segundo plano
- Cómo desencadenar eventos de suspensión, reanudación y en segundo plano en aplicaciones UWP durante la depuración