Xamarin.Forms Ciclo di vita dell'app

La classe di base Application offre le funzionalità seguenti:

Metodi del ciclo di vita

La classe Application contiene tre metodi virtuali che possono essere sottoposti a override per rispondere alle modifiche del ciclo di vita:

  • OnStart - chiamato all'avvio dell'applicazione.
  • OnSleep - chiamato ogni volta che l'applicazione passa in background.
  • OnResume - chiamato alla ripresa dell'applicazione, dopo il passaggio in background.

Nota

Non è disponibile alcun metodo per la terminazione dell'applicazione. In circostanze normali, ovvero non in caso di arresto anomalo, la terminazione dell'applicazione verrà eseguita dallo stato OnSleep, senza l'invio di notifiche aggiuntive al codice.

Per rilevare quando questi metodi vengono chiamati, implementare una chiamata WriteLine in ognuno (come illustrato di seguito) ed eseguire test in ogni piattaforma.

protected override void OnStart()
{
    Debug.WriteLine ("OnStart");
}
protected override void OnSleep()
{
    Debug.WriteLine ("OnSleep");
}
protected override void OnResume()
{
    Debug.WriteLine ("OnResume");
}

Importante

In Android il metodo OnStart verrà chiamato a rotazione oltre che al primo avvio dell'applicazione, se l'attività principale non include ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation nell'attributo [Activity()].

La classe Application include due eventi che inviano notifica della comparsa e della scomparsa delle pagine:

  • PageAppearing - Evento generato quando una pagina sta per apparire sullo schermo.
  • PageDisappearing - Evento generato quando una pagina sta per scomparire dallo schermo.

Questi eventi possono essere usati in scenari in cui si vuole tenere traccia delle pagine man mano che vengono visualizzate sullo schermo.

Nota

Gli eventi PageAppearing e PageDisappearing vengono generati dalla classe di base Page subito dopo gli eventi Page.Appearing e Page.Disappearing, rispettivamente.

Esistono quattro eventi nella classe Application, ognuno con argomenti propri, che consentono di rispondere alla visualizzazione e alla chiusura di pagine modali:

  • ModalPushing - generato in caso di push modale di una pagina.
  • ModalPushed - generato dopo il push modale di una pagina.
  • ModalPopping - generato in caso di prelievo modale di una pagina.
  • ModalPopped - generato dopo il prelievo modale di una pagina.

Nota

Gli argomenti dell'evento ModalPopping, di tipo ModalPoppingEventArgs, contengono una proprietà Cancel. Quando Cancel è impostata su true il prelievo modale viene annullato.