Condividi tramite


Come rispondere agli eventi di sistema con le attività in background (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Scopri come creare un'attività in background che risponde ai trigger di eventi di sistema. Le app di Windows Store sono persistenti rispetto all'esperienza utente anche quando l'app non è in primo piano, grazie all'associazione di codice personalizzato leggero agli eventi SystemTrigger. Questo codice personalizzato viene eseguito nelle attività in background.

Cosa sapere

Tecnologie

Prerequisiti

  • In questo argomento si presuppone che sia presente una classe di attività in background scritta per la tua app e chetale attività debba essere eseguita in risposta a un evento attivato dal sistema, ad esempio quando Internet diventa disponibile o l'utente esegue l'accesso. Per eseguire le attività in background registrate tramite le classi SystemTrigger e MaintenanceTrigger, l'app non deve essere nella schermata di blocco. In questo argomento viene presentata la classe SystemTrigger. Per altre informazioni sulla scrittura di una classe di attività in background, vedi Guida introduttiva: Creare e registrare un'attività in background.

Istruzioni

Passaggio 1: Creare un oggetto SystemTrigger

Nel codice dell'app crea un nuovo oggetto SystemTrigger. Il primo parametro, triggerType, specifica il tipo di trigger di eventi del sistema che attiverà l'attività in background. Per l'elenco dei tipi di eventi, vedi SystemTriggerType.

Il secondo parametro, OneShot, specifica se l'attività in background verrà eseguita una sola volta quando si verifica l'evento di sistema la volta successiva e vengono attivate le attività in background oppure ogni volta che si verifica l'evento di sistema fino a quando non viene annullata la registrazione dell'attività.

Il codice seguente specifica che l'attività in background viene eseguita ogni volta che Internet diventa disponibile:

var internetTrigger = new Windows.ApplicationModel.Background.SystemTrigger(InternetAvailable, false);

Passaggio 2: (Facoltativo) Aggiungi una condizione

Se necessario, aggiungi una condizione per l'attività in background, in modo da controllare quando verrà eseguita l'attività. Una condizione consente di impedire che l'attività in background venga eseguita fino a quando non si verifica la condizione. Per altre informazioni, vedi Come impostare le condizioni per l'esecuzione di un'attività in background.

In questo esempio, la condizione è impostata su UserPresent, per garantire che l'attività in background venga eseguita solo quando l'utente usa attivamente il dispositivo o diventa disponibile. Per l'elenco delle possibili condizioni per le attività in background, vedi SystemConditionType.

Nel codice seguente viene aggiunta una condizione all'attività in background:

var exampleCondition = new Windows.ApplicationModel.Background.SystemCondition(Windows.ApplicationModel.Background.SystemCondition.UserPresent);

Passaggio 3: Registra l'attività in background

Registra l'attività in background chiamando la funzione di registrazione delle attività in background. Per altre informazioni sulla registrazione delle attività in background, vedi Come registrare un'attività in background.

Nel codice seguente viene eseguita la registrazione dell'attività in background:

var entryPoint = “js\\ExampleBackgroundTask.js”;
var taskName = “Internet-based background task”;

var task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);

Nota  

Nelle app di Windows Phone Store, devi chiamare RequestAccessAsync prima di tentare di registrare attività in background. In Windows la chiamata è necessaria solo per il set di attività in background per la cui esecuzione l'app deve essere nella schermata di blocco. Nel telefono devi tuttavia chiamare il metodo una volta prima di registrare attività in background.

Per garantire che l'app di Windows Phone continui a funzionare correttamente dopo il rilascio di un aggiornamento, devi chiamare RemoveAccess e poi chiamare RequestAccessAsync all'avvio dell'app dopo l'aggiornamento. Per altre informazioni, vedi Linee guida per le attività in background (HTML).

Nota  

A partire da Windows 8.1, i parametri di registrazione dell'attività in background vengono convalidati al momento della registrazione. Se uno dei parametri di registrazione non è valido, viene restituito un errore. L'app deve essere in grado di gestire scenari in cui si verifica un errore di registrazione dell'attività in background. Puoi ad esempio usare un'istruzione condizionale per controllare la presenza di errori di registrazione e quindi eseguire un nuovo tentativo in caso di errore della registrazione usando valori dei parametri diversi.

 

Osservazioni

Per una dimostrazione pratica della registrazione dell'attività in background, scarica l'esempio di attività in background.

Le attività in background possono essere eseguite in risposta a eventi SystemTrigger e MaintenanceTrigger senza essere posizionate nella schermata di blocco, ma devi sempre dichiarare le attività in background nel manifesto dell'applicazione. Nel telefono devi inoltre chiamare RequestAccessAsync prima di poter registrare qualsiasi tipo di attività in background.

Le app che supportano la schermata di blocco possono registrare attività in background che rispondono agli eventi TimeTrigger, PushNotificationTrigger e NetworkOperatorNotificationTrigger, consentendo loro di offrire una comunicazione in tempo reale con l'utente anche quando l'app non è in primo piano. Per altre informazioni, vedi Supporto dell'app con le attività in background.

Argomenti correlati

Guida introduttiva: Creare e registrare un'attività in background

Come registrare un'attività in background

Come impostare le condizioni per l'esecuzione di un'attività in background

Come usare i trigger di manutenzione

Come dichiarare le attività in background nel manifesto dell'applicazione

Come eseguire il debug di un'attività in background

Linee guida ed elenchi di controllo per le attività in background