Condividi tramite


Linee guida ed elenco di controllo per 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 ]

Crea attività in background migliori a supporto dell'app e assicurati che essa risponda ai requisiti per l'esecuzione di attività in background.

Indicazioni sulle attività in background

Quando sviluppi un'attività in background, e prima di pubblicare l'app, considera le indicazioni seguenti.

Chiudi le attività in background: Non dimenticare che le attività in background devono chiamare il metodo close() al termine. Se l'attività in background non si chiude, il processo in esecuzione in background può continuare a consumare memoria e durata della batteria fino al completamento o all'annullamento dell'attività.

Quote CPU e rete: Non superare la quota CPU o la quota di utilizzo dei dati di rete applicata all'attività in background. Le attività in background devono essere leggere per aumentare la durata della batteria e migliorare l'esperienza utente per le app in primo piano. Per i vincoli relativi alle risorse applicati alle attività in background, vedi Supporto dell'app con attività in background.

Gestire attività in background: L'app deve acquisire un elenco di attività in background registrate, eseguire la registrazione per gestori di stato e completamento e gestire questi eventi in modo appropriato. Le attività in background devono segnalare lo stato, l'annullamento e il completamento. Vedi Come ottenere un elenco di attività in background in sospeso, Come gestire un'attività in background annullata e Come monitorare lo stato e il completamento delle attività in background.

Aggiornare il manifesto dell'app: Dichiara ogni attività in background nel manifesto dell'applicazione, insieme al tipo di trigger con cui viene usata. In caso contrario l'app non sarà in grado di registrare l'attività in background in fase di esecuzione. Per altre informazioni, vedi Come dichiarare le attività in background nel manifesto dell'applicazione.

Prepara l'app per gli aggiornamenti: Se l'app dovrà essere aggiornata, crea e registra l'attività in background ServicingComplete (vedi SystemTriggerType) per facilitare l'esecuzione degli aggiornamenti dell'app eventualmente necessari al di fuori del contesto dell'esecuzione in primo piano.

Attività in background per le app che supportano la schermata di blocco in Windows: La schermata di blocco è una risorsa condivisa. Può contenere solo sette app alla volta, di cui solo una con un riquadro esteso. Un'app può garantire un'esperienza utente ottimale richiedendo l'accesso alla schermata di blocco mediante il metodo RequestAccessAsync e continuando a funzionare anche quando non è nella schermata di blocco. Le app non posizionate nella schermata di blocco possono ancora aggiornare i riquadri e le notifiche, inviare notifiche e registrarsi per trigger di eventi di sistema. Quando l'app è in primo piano, l'esperienza utente non deve mai essere interrotta, anche se l'utente non ha collocato l'app nella schermata di blocco.

Per indicazioni sull'opportunità di inserire l'app nella schermata di blocco, leggi la Panoramica della schermata di blocco.

Richiesta di esecuzione delle attività in background per le app di Windows Phone Store:

Le app di Windows Phone Store possono eseguire tutti i tipi di attività supportati senza essere aggiunte alla schermata di blocco. Tuttavia, l'app deve chiamare RequestAccessAsync prima di registrare qualsiasi tipo di attività in background. Questo metodo restituirà BackgroundAccessStatus.Denied se è stato superato il numero massimo di app con attività in background nel sistema o se l'utente ha negato esplicitamente le autorizzazioni per le attività in background relative all'app nelle impostazioni del dispositivo.

Per le app di Windows Phone Store, se la tua app verrà aggiornata, devi chiamare RemoveAccess e quindi RequestAccessAsync quando l'app viene avviata dopo l'aggiornamento. Per determinare quando l'app è stata aggiornata, tieni traccia del numero di versione dell'app usando un valore archiviato nelle impostazioni locali. All'avvio dell'app controlla la versione e, se è più recente rispetto alla versione nelle impostazioni locali, chiama RemoveAccess e RequestAccessAsync. A tale scopo, aggiungi codice simile al seguente e chiamalo dal gestore dell'evento di avvio per la tua app.

function checkAppVersion() {
    var localSettings = Windows.Storage.ApplicationData.current.localSettings;
    var pkgVersion = Windows.ApplicationModel.Package.current.id.version;
    var backgroundExecMgr = Windows.ApplicationModel.Background.BackgroundExecutionManager;

    var appVersion = pkgVersion.build + "." +
                        pkgVersion.major + "." +
                        pkgVersion.minor + "." +
                        pkgVersion.revision;

    if (localSettings.values["appVersion"] != appVersion)
    {
        // Our app has been updated
        localSettings.values["appVersion"] = appVersion;

        // Call removeAccess
        backgroundExecMgr.removeAccess();
    }
        
    backgroundExecMgr.requestAccessAsync();
}

Elenco di controllo per le attività in background

L'elenco di controllo seguente si applica a tutte le attività in background.

  • Associa l'attività in background al trigger corretto.

  • Aggiungi condizioni che favoriscano la corretta esecuzione dell'attività in background.

  • Gestisci l'avanzamento, il completamento e l'annullamento delle attività in background.

  • Non visualizzare altri elementi di interfaccia utente oltre ad avvisi popup, riquadri e aggiornamenti delle notifiche dall'attività in background.

  • Chiama close() quando l'attività in background ha completato le operazioni.

  • Usa l'archiviazione permanente per condividere i dati tra l'attività in background e l'app.

  • Dichiara ogni attività in background nel manifesto dell'applicazione, insieme al tipo di trigger con cui viene usata. Assicurati che i tipi di punto di ingresso e trigger siano corretti.

  • Scrivi attività in background di breve durata. Non superare le quote per CPU o rete indicate in Supporto dell'app con le attività in background.

  • Nelle attività in background non ti affidare all'interazione dell'utente.

  • Controlla gli errori di registrazione dell'attività in background. Se appropriato, tenta di registrare di nuovo l'attività in background con valori dei parametri diversi.

Windows: elenco di controllo per le attività in background nelle app che supportano la schermata di blocco

Segui queste indicazioni per lo sviluppo di attività in background per le app che supportano la schermata di blocco. Segui le indicazioni in Linee guida ed elenco di controllo per i riquadri della schermata di blocco.

  • Assicurati dell'effettiva necessità di inserire l'app nella schermata di blocco prima di svilupparla come app che supporta la schermata di blocco. Per altre informazioni, vedi Panoramica della schermata di blocco.

  • Assicurati che l'app continui a funzionare anche quando non è nella schermata di blocco.

  • Richiedi l'accesso alla schermata di blocco usando il metodo RequestAccessAsync.

  • Includi un'attività in background registrata con TimeTrigger e dichiarala nel manifesto dell'app. Assicurati che i tipi di punto di ingresso e trigger siano corretti. Questo è necessario per la certificazione e consente all'utente di posizionare l'app nella schermata di blocco.

  • Scrivi attività in background di breve durata, anche per le app che supportano la schermata di blocco. Non superare le quote per CPU o rete indicate in Supporto dell'app con le attività in background.

  • Per le app di Windows Phone Store, in caso di riduzione eccessiva della memoria disponibile per il dispositivo, le attività in background potrebbero essere terminate senza avviso e senza generare l'evento OnCanceled. Ciò permette di garantire l'esperienza utente dell'app in primo piano. La tua attività in background dovrebbe essere progettata per gestire uno scenario di questo tipo.

Argomenti correlati

Altri argomenti correlati sulle attività in background

Guida introduttiva: Creazione e registrazione di un'attività di background

Come registrare un'attività in background

Come eseguire il debug di un'attività in background

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

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

Altre indicazioni correlate sulla schermata di blocco

Panoramica della schermata di blocco

Visualizzazione di riquadri nella schermata di blocco

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