Um dos requisitos fundamentais para o desenvolvimento de software em qualquer tecnologia é a familiaridade com o ciclo de vida da aplicação sendo desenvolvida. Por sorte o ciclo de vida de uma aplicação Xamarin.Forms é bastante simples e fácil de se compreender.

Em Xamarin.Forms todos os métodos e eventos referentes ao gerenciamento do ciclo de vida da aplicação estão localizados na classe Application. Dentre as principais funcionalidades da classe Application estão métodos para gerenciamento de ciclo de vida (OnStart, OnSleep, OnResume), eventos referentes a navegação (PageAppearing, PageDisappearing) e a navegação modal (ModalPopping, ModalPushing, ModalPushed e ModalPopped). Vamos falar um pouco sobre estes métodos e eventos.

MÉTODOS DE GERENCIAMENTO DE CICLO DE VIDA

São métodos virtuais que podem (devem, quando necessário) serem sobrescritos para permitir que a aplicação se comporte da maneira desejada quando o ciclo de vida da aplicação muda, como por exemplo, iniciar serviços no início da aplicação, preparar para economizar recursos quando a aplicação vai para segundo plano ou retomar as atividades quando o foco é retomado para a aplicação.

  • OnStart – Esse método é chamado quando a aplicação é iniciada. Ele é chamado apenas uma vez durante todo o ciclo de vida da nossa aplicação iOS, e após o dispositivo ser rotacionado em aplicações Android (mas esse comportamento pode ser alterado).
  • OnSleep – Esse método é chamado toda vez que a aplicação vai para segundo plano, como ocorre quando o usuário não finaliza a aplicação mas abre outro aplicativo ou navega para a tela inicial do sistema operacional do dispositivo.
  • OnResume – Ao contrário do OnSleep esse método é chamado quando a aplicação que estava em segundo plano volta a receber o foco do usuário.

Algo bastante importante e que deve ser observado é o fato de que não existe um método específico para tratar a finalização ou encerramento do aplicativo. Como é especificado pela documentação oficial, em um caso de encerramento normal (que não seja por uma exceção não tratada) a finalização da aplicação vai ocorrer a partir do estado de repouso (OnSleep).

Um teste rápido e que pode ajudar a visualizar a chamada dos métodos de ciclo de vida em ação é (dentro da classe App) simplesmente fazer uma chamada do método Debug.WriteLine() dentro de uma sobrescrita de cada um dos métodos mencionados e observar a saída na janela de monitoramento quando em modo debug:

MÉTODOS DE NOTIFICAÇÃO DE NAVEGAÇÃO

A classe Application, como já mencionado, também possui métodos que nos notificam de eventos de navegação entre páginas, tanto de maneira modal como não-modal.

Existem dois eventos que nos notificam do status de navegação não-modal:

  • PageAppearing – Esse evento é disparado quando uma página está prestes a aparecer na tela.
  • PageDisappearing – Já este evento é disparado quando a página está prestes a desaparecer da tela.

Existem quatro métodos que nos notificam do status de navegação modal:

  • ModalPushing – Disparado antes de a página modal aparecer.
  • ModalPushed – Disparado após a página modal aparecer.
  • ModalPopping – Disparado antes de a página modal desaparecer.
  • ModalPopped – Disparado após a página modal desaparecer.

Assim como com os métodos de ciclo de vida da aplicação, também podemos conferir na saída do debug o momento em que os eventos de notificação de navegação modal e não-modal são disparados:

Digno de nota é que o argumento ModalPopping possui uma propriedade Cancel. Ao setar essa propriedade para True o evento é cancelado, impedindo assim o fechamento da página.

Write A Comment

Pin It