Xamarin.Forms Ciclo de vida do aplicativo

A classe base Application fornece os seguintes recursos:

Métodos de ciclo de vida

A classe Application contém três métodos virtuais que podem ser substituídos para responder às alterações de ciclo de vida:

  • OnStart – chamado quando o aplicativo é iniciado.
  • OnSleep – chamado sempre que o aplicativo vai para segundo plano.
  • OnResume – chamado quando o aplicativo é retomado, após ter sido enviado para o segundo plano.

Observação

Não há nenhum método de encerramento do aplicativo. Em circunstâncias normais (ou seja, não uma falha), o encerramento do aplicativo acontecerá do estado OnSleep, sem notificações adicionais em seu código.

Para observar quando esses métodos são chamados, implemente uma chamada WriteLine em cada um (conforme mostrado abaixo) e teste em cada plataforma.

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

Importante

No Android, o método OnStart será chamado em rotação, assim como quando o aplicativo for iniciado pela primeira vez, se a atividade principal não tiver ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation no atributo [Activity()].

Há dois eventos na classe Application que fornecem notificação quando páginas aparecem e desaparecem:

  • PageAppearing – gerado quando uma página está prestes a aparecer na tela.
  • PageDisappearing – gerado quando uma página está prestes a desaparecer da tela.

Esses eventos podem ser usados em cenários em que você deseja controlar páginas à medida em que aparecem na tela.

Observação

Os eventos PageAppearing e PageDisappearing são gerados da classe base Page imediatamente após os eventos Page.Appearing e Page.Disappearing, respectivamente.

Há quatro eventos na classe Application, cada um com seus próprios argumentos de evento, que permitem que você responda quando páginas modais são mostradas e ignoradas:

  • ModalPushing – acionado quando uma página é enviada por push de forma modal.
  • ModalPushed – acionado após uma página ter sido enviada por push de forma modal.
  • ModalPopping – acionado quando uma página é removida mais recente da pilha de forma modal.
  • ModalPopped – acionado após uma página ter sido removida mais recente da pilha de forma modal.

Observação

Os argumentos do evento ModalPopping, do tipo ModalPoppingEventArgs, contêm uma propriedade Cancel. Quando Cancel é definido como true, a remoção modal é cancelada.