Trasferimento di dati 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 ]

Usa le API Windows.Networking.BackgroundTransfer disponibili in Windows Runtime per arricchire la tua app con funzionalità di download e caricamento avanzate che vengono eseguite in background durante la sospensione dell'app, includono la gestione del ciclo di vita per operazione e persistono anche dopo la chiusura dell'app. Questa funzionalità è ideale per operazioni di download e caricamento di file di grandi dimensioni mediante i protocolli HTTP e HTTPS. FTP è supportato ma solo per le operazioni di download.

Trasferimento in background viene eseguito separatamente dall'app ed è progettato principalmente per operazioni di trasferimento a lungo termine di risorse come video, musica e immagini di grandi dimensioni. Per questi scenari, l'uso del trasferimento in background è fondamentale, poiché l'avanzamento dei download procede anche quando l'app viene sospesa. Sul telefono, i trasferimenti in background continuano anche quando l'app viene chiusa. Per altre informazioni sul ciclo di vita di un'app, esamina la documentazione Ciclo di vita delle applicazioni.

Nota   Se si prevedono download di risorse di ridotte dimensioni che vengono completati rapidamente, usa le API HttpClient anziché il trasferimento in background.

 

In che modo funziona il trasferimento in background?

Se un'app usa il trasferimento in background per avviare un trasferimento, la richiesta viene configurata e inizializzata usando gli oggetti della classe BackgroundDownloader o BackgroundUploader. Ogni operazione di trasferimento viene gestita singolarmente dal sistema, separata dall'app chiamante. Le informazioni sull'avanzamento saranno disponibili nell'interfaccia utente dell'app se ne vuoi fornire lo stato all'utente e sarà possibile mettere in pausa, riprendere, annullare o persino leggere i dati durante il trasferimento. La modalità con cui sono gestiti i trasferimenti dal sistema favorisce un uso intelligente dell'energia e contribuisce a prevenire molti dei problemi che gli utenti finali riscontrano in genere quando un'app connessa rileva eventi quali sospensioni, arresti o modifiche improvvise dello stato della rete.

Guarda questo breve video che illustra il semplice download di un file con il trasferimento in background.

App di Windows Phone Store: La mia app può usare il trasferimento in background per creare richieste di file autenticati?

La funzionalità di trasferimento in background offre metodi che supportano credenziali server e proxy di base e l'uso di intestazioni HTTP personalizzate (tramite SetRequestHeader) per ciascuna operazione di trasferimento.

In che modo questa funzionalità si adatta a variazioni di stato della rete o ad arresti improvvisi?

La funzionalità di trasferimento in background assicura la coerenza di ciascuna operazione di trasferimento quando si verificano modifiche dello stato di rete, sfruttando in maniera intelligente la connettività e le informazioni sullo stato del piano dati del gestore telefonico fornite dalla funzionalità Connettività. Per definire il comportamento per diversi scenari di rete, un'app imposta i criteri di costo per ogni operazione di trasferimento usando valori definiti da BackgroundTransferCostPolicy.

Ad esempio, i criteri di costo definiti per un'operazione possono indicare che l'operazione debba essere sospesa automaticamente quando il dispositivo usa una rete a consumo. Il trasferimento viene poi ripreso (o riavviato) automaticamente dopo che viene stabilita la connessione a una rete senza restrizioni. Per ulteriori informazioni su come vengono definite le reti in base al costo, vedi NetworkCostType.

Benché la funzionalità di trasferimento in background abbia i propri meccanismi per la gestione delle modifiche dello stato di rete, ci sono altre considerazioni generali sulla connettività per le app connesse alla rete. Per altre informazioni, vedi Uso delle informazioni sulle connessioni di rete disponibili.

Nota  

Per le app di Windows Phone Store, ci sono funzionalità che consentono all'utente di monitorare e limitare la quantità dei dati trasferiti in base al tipo di connessione, allo stato di roaming e al piano dati. Per questo motivo, i trasferimenti in background possono essere messi in pausa sul telefono anche quando BackgroundTransferCostPolicy indica che il trasferimento dovrebbe procedere.

La tabella seguente mostra quando i trasferimenti in background sono consentiti sul telefono per ogni valore BackgroundTransferCostPolicy in base allo stato corrente del telefono. Puoi usare la classe ConnectionCost per determinare lo stato corrente del telefono.

Stato del telefono UnrestrictedOnly Default Always
Connesso al WiFi Consentiti Consentiti Consentiti
Connessione a consumo, nessun roaming, al di sotto della soglia dei dati, buone probabilità di rimanere al di sotto della soglia Non consentiti Consentiti Consentiti
Connessione a consumo, nessun roaming, al di sotto della soglia dei dati, buone probabilità di superare la soglia Non consentiti Non consentiti Consentiti
Connessione a consumo, roaming, al di sotto della soglia dei dati Non consentiti Non consentiti Consentiti
Connessione a consumo, al di sopra della soglia dei dati. Questo stato si verifica solo quando l'utente abilita Limita il traffico dati in background nell'interfaccia utente Data Sense. Non consentiti Non consentiti Non consentiti

 

RequestUnconstrainedDownloadsAsynce RequestUnconstrainedUploadsAsync non sono supportati sul telefono. Le chiamate a queste API verranno compilate correttamente, ma non riusciranno in fase di runtime generando un'eccezione E_NOT_IMPL.

Altre informazioni sui trasferimenti in background.

Sezione Descrizione
Trasferimento di un file da una risorsa di rete

Aggiungi la funzionalità che consente di scaricare e caricare file nella tua app di Windows Store in tutta sicurezza.

Background Transfer API reference

Documentazione sulle API per l'intero spazio dei nomi Trasferimento in background di Windows Runtime.

Esempio di trasferimento in background

Questo esempio dimostra il comportamento a basso consumo, sensibile ai costi e flessibile dell'API di trasferimento in background delle app di Windows Store.

 

Argomenti correlati

Connessione a un server HTTP tramite Windows.Web.Http