Share via


Supporto dell'app con 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 ]

Gli argomenti contenuti in questa sezione mostrano come eseguire codice leggero personalizzato in background in risposta a trigger con le attività in background. Le attività in background sono file JavaScript separati che il sistema operativo esegue in background. Puoi usare le attività in background per offrire funzionalità quando l'app è sospesa o non è in esecuzione. In JavaScript puoi anche eseguire attività in background mediante un timer.

Le attività in background usano lo spazio dei nomi Windows.UI.WebUI.WebUIBackgroundTaskInstance per acquisire informazioni sulla loro istanza corrente. Puoi registrare le attività in background usando un oggetto BackgroundTaskBuilder. Il file JavaScript dell'attività in background è specificato come punto di ingresso durante la registrazione dell'attività in background.

Per imparare velocemente a creare un'attività in background, vedi Guida introduttiva: Creare e registrare un'attività in background.

Attività in background per eventi di sistema

La tua app può rispondere a eventi generati del sistema registrando un'attività in background con SystemTrigger. Un'app può usare uno qualsiasi dei seguenti trigger di eventi di sistema (definiti in SystemTriggerType) senza essere posizionata nella schermata di blocco.

Nome del trigger Descrizione

InternetAvailable

Internet diventa disponibile.

NetworkStateChange

Si verifica una modifica della rete, ad esempio relativa al costo o alla connettività.

OnlineIdConnectedStateChange

L'ID online associato all'account cambia.

SmsReceived

Viene ricevuto un nuovo SMS da un dispositivo mobile a banda larga installato.

TimeZoneChange

Il fuso orario cambia, ad esempio quando il sistema regola l'orologio per l'applicazione dell'ora legale.

 

Per altre informazioni, vedi Come rispondere agli eventi di sistema con le attività in background.

Condizioni per le attività in background

Puoi stabilire quando eseguire l'attività in background, anche dopo l'attivazione, aggiungendo una condizione. Dopo l'attivazione, l'attività in background viene eseguita solo quando sono soddisfatte tutte le condizioni specificate. Puoi usare le condizioni seguenti, rappresentate dall'enumerazione SystemConditionType.

Nome della condizione Descrizione
InternetAvailable

Internet deve essere disponibile.

InternetNotAvailable

Internet non deve essere disponibile.

SessionConnected

La connessione alla sessione deve essere stabilita.

SessionDisconnected

La connessione alla sessione deve essere terminata.

 

Per altre informazioni, vedi Come impostare le condizioni per l'esecuzione di un'attività in background.

Requisiti del manifesto dell'app

Prima che l'app possa registrare correttamente un'attività in background, è necessario dichiararla nel manifesto dell'applicazione. Per altre informazioni, vedi Come dichiarare le attività in background nel manifesto dell'applicazione.

Attività in background per le app che supportano la schermata di blocco

Le app possono essere posizionate nella schermata di blocco per mostrare informazioni in tempo reale all'utente. I trigger in tempo reale seguenti possono essere usati per eseguire codice personalizzato leggero in background per le app nella schermata di blocco:

Canale di controllo: Le attività in background possono mantenere attiva una connessione e ricevere messaggi sul canale di controllo tramite ControlChannelTrigger. Per altre informazioni, vedi l'argomento relativo a come usare il trigger del canale di controllo. Tieni presente che le attività in background del canale di controllo possono essere implementate solo in C# o C++. ControlChannelTrigger non è supportato in Windows Phone.

Timer: Le attività in background possono essere eseguite con una frequenza massima di 15 minuti ed essere impostate per l'esecuzione a un'ora specifica tramite TimeTrigger. Per altre informazioni, vedi Come eseguire un'attività in background mediante timer.

Notifica push: Le attività in background rispondono a PushNotificationTrigger per ricevere notifiche push non elaborate. Per altre informazioni, vedi Come ricevere notifiche non elaborate.

Nota  Solo app di Windows Store. L'utente deve posizionare l'app nella schermata di blocco prima che l'app possa usare queste attività in background. Un'app può richiedere l'accesso alla schermata di blocco chiamando RequestAccessAsync. In questo modo viene presentata una finestra di dialogo che richiede all'utente di consentire o meno all'app di accedere alla schermata di blocco. Un'app può richiedere l'accesso alla schermata di blocco una sola volta. Qualsiasi chiamata successiva a RequestAccessAsync viene ignorata.

Nota  

Le app di Windows Phone Store possono usare tutti i trigger in background supportati senza essere aggiunte alla schermata di blocco. Un'app telefonica deve tuttavia chiamare RequestAccessAsync prima di registrare qualsiasi tipo di trigger 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 (app di Windows Runtime).

Trigger di eventi di sistema per le app che supportano la schermata di blocco

Nota  L'enumerazione SystemTriggerType include i trigger di eventi di sistema seguenti che possono essere usati solo da app che supportano la schermata di blocco. Un'app deve essere posizionata nella schermata di blocco prima che possa registrare un'attività in background con uno di questi trigger di eventi di sistema.

Nome del trigger Descrizione

UserPresent

L'attività in background viene attivata quando l'utente diventa presente.

UserAway

L'attività in background viene attivata quando l'utente diventa assente.

ControlChannelReset

L'attività in background viene attivata quando un canale di controllo viene ripristinato.

SessionConnected

L'attività in background viene attivata quando la sessione è connessa.

 

Anche i trigger di eventi di sistema seguenti possono essere usati per le app che supportano la schermata di blocco. Questi trigger possono essere registrati anche quando l'app non si trova nella schermata di blocco e in questo modo è possibile rilevare quando l'utente sposta l'app nella schermata di blocco o la rimuove da questa schermata.

Nome del trigger Descrizione

LockScreenApplicationAdded

Un riquadro dell'app viene aggiunto alla schermata di blocco.

LockScreenApplicationRemoved

Un riquadro dell'app viene rimosso dalla schermata di blocco.

 

 

Vincoli delle risorse per le attività in background

Le attività in background sono leggere. La limitazione dell'esecuzione in background assicura una migliore esperienza utente con le app in primo piano e garantisce una maggiore durata della batteria. A tale scopo, è possibile applicare vincoli delle risorse alle attività in background:

  • L'utilizzo della CPU è limitato come indicato di seguito.

    Quota di utilizzo CPU Tempo di aggiornamento
    App Windows non nella schermata di blocco

    1 secondo

    2 ore

    App Windows nella schermata di blocco

    2 secondi

    15 minuti

    App per Windows Phone

    2 secondi

    15 minuti

     

  • Nei sistemi alimentati a batteria (alimentazione CC) è previsto anche un limite di utilizzo dei dati di rete per le attività in background. Questo limite è in funzione della quantità di energia usata dall'interfaccia di rete e quindi varia in base al dispositivo e all'ambiente di rete, ma è possibile stimarlo.

    La tabella seguente offre una caratterizzazione della velocità di trasmissione dei dati di rete, presupponendo una rete WiFi con vincoli di risorse che supporta una velocità di trasmissione dei dati media di 1 Mbps. Per stimare il limite corretto, moltiplica per la velocità Mbps (megabit al secondo) media della connessione. Ad esempio, un'app può usare 25 MB di dati ogni 2 ore su una connessione WiFi da 10 Mbps se è posizionata nella schermata di blocco. Per questa interfaccia WiFi si presuppongono interferenze minime.

    Periodo di aggiornamento 15 minuti 2 ore Ogni giorno
    Limite di dati (nella schermata di blocco) 0,469 MB N/D 45 MB
    Limite di dati (non nella schermata di blocco) N/D 0,625 MB 7,5 MB

     

    Nota  Il limite di utilizzo dei dati di rete è superiore quando il dispositivo è collegato alla rete elettrica, ma la quota di utilizzo della CPU è ancora valida. In modo simile, i vincoli per le risorse di rete e CPU sono sospesi per le attività in background di un'app durante le interazioni dell'utente con l'app in primo piano.

     

Vincoli aggiuntivi delle risorse per le attività in background per le app di Windows Phone Store

Oltre ai vincoli delle risorse descritti nella sezione precedente, per le attività in background nelle app di Windows Phone Store sono previsti i seguenti vincoli aggiuntivi.

Vincoli relativi alla memoria

Per via dei vincoli delle risorse per il fattore formato telefonico, soprattutto per i dispositivi con memoria ridotta, le attività in background per le app di Windows Phone prevedono un limite di memoria che definisce la quantità massima di memoria che può essere usata dall'attività in background. Se l'attività in background supera tale limite, verrà terminata immediatamente. L'allocazione della memoria dipende dal tipo di attività in background, nonché dalla memoria di sistema totale del dispositivo in cui viene eseguita. In fase di sviluppo e testing dell'app devi tenere conto di tali limiti. Puoi inoltre usare le API MemoryManager per conoscere i valori attuali relativi all'uso e al limite della memoria, in modo da regolarne l'uso in fase di esecuzione. La tabella seguente elenca la capacità di memoria, in megabyte, per i tipi di attività in background specificati relativamente a diverse quantità di memoria di sistema totale disponibile nel dispositivo.

Tipo di attività in background 512 MB 1 GB 2 GB o superiore
Posizione 16 30 40
Bluetooth 16 16 16
Manutenzione completata 10 10 10
Altre attività in background 16 30 40
Limite durante il debug 30 40 50

 

Limite per dispositivo per le app con attività in background in dispositivi con memoria ridotta

Nei telefoni con una memoria di 512 MB è previsto un limite relativo al numero di app che possono essere installate in un dispositivo e possono usare attività in background in un determinato momento. Se tale limite viene superato, la chiamata a RequestAccessAsync, necessaria per registrare tutte le attività in background in Windows Phone, non riuscirà.

Risparmio batteria

In Windows Phone, se la funzione Risparmio batteria è attivata, le attività in background non verranno eseguite quando il dispositivo non è connesso a una fonte di alimentazione esterna e la batteria scende al di sotto di una determinata soglia. In questo caso, potrai comunque registrare le attività in background.

Trigger di manutenzione

Puoi anche configurare l'app per eseguire attività con una frequenza massima di 15 minuti tramite il trigger di manutenzione. Invece di richiedere il posizionamento nella schermata di blocco, le attività di manutenzione vengono eseguite solo se il dispositivo è collegato all'alimentazione da rete elettrica. Per altre informazioni, vedi Come usare i trigger di manutenzione.

Attività in background per sensori e dispositivi

La tua app può accedere a sensori e periferiche da un'attività in background con la classe DeviceUseTrigger. Puoi usare questo trigger per le operazioni di lunga durata, ad esempio sincronizzazione dei dati o monitoraggio. Diversamente dalle attività per gli eventi di sistema, un'attività DeviceUseTrigger può essere attivata solo quando l'app è eseguita in primo piano e su di essa non possono essere impostate condizioni. A seconda di dove è eseguita (PC o telefono), un'attività di background DeviceUseTrigger supporta diverse API ed è soggetta a diversi criteri. Per altre informazioni su queste differenze, vedi Accesso a sensori e dispositivi da un'attività in background.

Alcune operazioni critiche relative al dispositivo, ad esempio gli aggiornamenti del firmware che richiedono una lunga esecuzione, non possono essere effettuate con DeviceUseTrigger. Queste operazioni possono essere effettuate solo sul PC ed esclusivamente mediante un'app con privilegi che usi DeviceServicingTrigger. Un'app con privilegi è un'app che il produttore del dispositivo ha autorizzato a eseguire tali operazioni. Per specificare quale app è stata eventualmente designata come app con privilegi per un dispositivo, vengono usati i metadati di quest'ultimo. Per altre informazioni, vedi l'argomento relativo alla sincronizzazione e aggiornamento dei dispositivi per app di Windows Store per dispositivo.

Gestione di attività in background

Tramite gli eventi e l'archiviazione locale, le attività in background possono comunicare all'app informazioni su stato, completamento e annullamento. Inoltre, la tua app è in grado di intercettare le eccezioni generate da un'attività in background e gestire la registrazione delle attività in background durante gli aggiornamenti dell'app. Per altre informazioni, vedi:

Come gestire un'attività in background annullata

Come ottenere l'elenco delle attività in background in sospeso

Come monitorare l'avanzamento e il completamento delle attività in background

Come usare il trigger ServicingComplete

Argomenti correlati

Informazioni concettuali per il multitasking in Windows 8

Introduzione alle attività in background

Avvio, ripresa e multitasking

Indicazioni sull'interfaccia utente per la schermata di blocco

Visualizzazione di riquadri nella schermata di blocco

Linee guida ed elenco di controllo per i riquadri della schermata di blocco

Informazioni correlate sulle attività in background

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

Come eseguire il debug di un'attività in background

Come attivare eventi di sospensione e ripresa ed eventi in background nelle app di Windows Store (durante il debug)

Accesso a sensori e dispositivi da un'attività in background

Sincronizzazione e aggiornamento dei dispositivi per app di Windows Store per dispositivo.