Condividi tramite


Come eseguire un'attività in background mediante timer (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 pianificare un'attività in background una tantum o eseguire un'attività in background periodica associata alla tua app di Windows Store. Se l'utente posiziona l'app nella schermata di blocco, l'app può registrare un'attività in background che viene eseguita periodicamente fino a ogni 15 minuti in Windows e ogni 30 minuti in Windows Phone. Un'attività in background può ad esempio essere usata per fornire aggiornamenti periodici di notifiche o riquadri.

Cosa sapere

Tecnologie

Prerequisiti

Istruzioni

Passaggio 1: Creare un trigger programmato

Crea un nuovo oggetto TimeTrigger. Il secondo parametro, OneShot, specifica se l'attività in background verrà eseguita una volta o su base periodica. Se il parametro OneShot è impostato su true, il primo parametro ((FreshnessTime) specifica il numero di minuti di attesa prima della pianificazione dell'attività in background. Se OneShot è impostato su false, FreshnessTime specifica la frequenza in base a cui verrà eseguita l'attività in background.

Windows 8 include un timer incorporato che esegue le attività in background a intervalli di 15 minuti. In Windows Phone l'intervallo è di 30 minuti.

  • Se FreshnessTime è impostato su 15 minuti o meno e OneShot è impostato su true, l'attività verrà eseguita una volta e inizierà in un intervallo di tempo compreso tra 0 e 15 minuti dal momento della registrazione.

  • Se FreshnessTime è impostato su 15 minuti o meno e OneShot è impostato su false, l'attività verrà eseguita ogni 15 minuti e inizierà in un intervallo di tempo compreso tra 0 e 15 minuti dal momento della registrazione.

Nota  Se FreshnessTime è impostato su un valore inferiore ai 15 minuti, viene generata un'eccezione quando si tenta di registrare l'attività in background.

 

Questo trigger, ad esempio, imposterà l'attività in background per l'esecuzione una volta ogni ora:

var hourlyTrigger = new Windows.ApplicationModel.Background.TimeTrigger(60, 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, in modo che, dopo essere stata attivata, l'attività verrà eseguita solo quando l'utente è attivo. Per l'elenco delle possibili condizioni, vedi SystemConditionType.

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

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

Passaggio 3: Richiedi l'accesso alla schermata di blocco

Prima di provare a registrare l'attività in background TimeTrigger, richiedi all'utente l'autorizzazione per aggiungere l'app alla schermata di blocco chiamando il metodo RequestAccessAsync.

In Windows nel codice seguente viene creata una finestra di dialogo che chiede all'utente di aggiungere la tua app alla schermata di blocco. In Windows Phone viene richiesto solo che il sistema conceda alla tua app la possibilità di eseguire attività in background:

Windows.ApplicationModel.Background.BackgroundExecutionManager.RequestAccessAsync();

Nota  Un'app può richiedere l'accesso alla schermata di blocco una sola volta. L'utente può scegliere solo una delle due opzioni, dichiarando così la sua preferenza. Ulteriori chiamate a RequestAccessAsync saranno ignorate.

 

Passaggio 4: 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 = “Example hourly background task”;

var task = RegisterBackgroundTask(entryPoint, taskName, hourlyTrigger, userCondition);

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

Nota  In Windows le attività in background con attivazione a tempo verranno registrate solo se l'utente ha aggiunto l'app alla schermata di blocco (o ha concesso l'autorizzazione quando l'app ha richiesto l'accesso). Vedi Visualizzazione di riquadri nella schermata di blocco. Le attività in background possono anche essere associate a trigger che non richiedono che l'app sia nella schermata di blocco. Per altre informazioni su questi tipi di trigger delle attività in background, 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 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