Riavviare un'applicazione nella Universal Windows Platform

di Matteo Tumiati, in Windows 10,

Ci possono essere diversi scenari che richiedono il riavvio di un'applicazione: dalla validazione di una licenza, allo sblocco di nuovi contenuti, alla fix di uno stato non stabile di un'applicazione, al completamento del setup stesso all'interno dell'app. Fino a pochi giorni fa, l'unica strada percorribile era suggerire all'utente il riavvio dell'applicazione manualmente, oppure forzare la sola chiusura dell'app, nella speranza che l'utente capisse di dover avviare nuovamente l'eseguibile e non lo intuisse come un crash.

A partire dal Fall Creators Update di Windows 10, e più precisamente dalla build 16226, è stata introdotta una nuova API che permette sia la terminazione che il riavvio dell'applicazione stessa, con la possibilità di integrare dei parametri, recuperabili all'avvio successivo. L'API di riferimento è la RequestRestartAsync ed è esposta come un metodo statico all'interno della classe CoreApplication:

var payload = "parametro recuperato al prossimo riavvio";

AppRestartFailureReason result = await CoreApplication.RequestRestartAsync(payload);

if (result == AppRestartFailureReason.NotInForeground ||
    result == AppRestartFailureReason.RestartPending ||
    result == AppRestartFailureReason.Other)
{
    // si è verificato un errore
}

Per motivi relativi alla privacy e per mitigare il problema che l'utente possa percepire il riavvio come un crash, questa API funziona solamente quando l'app è in modalità Foreground e quindi ben visibile. Se l'applicazione è, ad esempio, in background, ed è necessario riavviare, bisognerà prendere un'azione tale per capire quando ritornerà in foreground e quindi pianificare il riavvio.

Al momento del riavvio, si potranno recuperare tutti i parametri nel modo classico, ovvero dal metodo OnActivated della classe App, in cui il tipo degli argomenti sarà LaunchActivatedEventArgs, mentre il PreviousExecutionState sarà impostato al valore Terminated.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi