Demonstração do ciclo de vida do aplicativo para Xamarin.iOS
Este artigo e código de exemplo demonstra os quatro estados do aplicativo no iOS e a função dos AppDelegate
métodos em notificar o aplicativo de quando os estados são alterados. O aplicativo imprimirá atualizações no console sempre que o aplicativo mudar de estado:
Passo a passo
Abra o projeto Lifecycle na solução LifecycleDemo .
Abra a
AppDelegate
turma. O registro em log foi adicionado aos métodos de ciclo de vida para indicar quando o aplicativo mudou de estado:public override void OnActivated(UIApplication application) { Console.WriteLine("OnActivated called, App is active."); } public override void WillEnterForeground(UIApplication application) { Console.WriteLine("App will enter foreground"); } public override void OnResignActivation(UIApplication application) { Console.WriteLine("OnResignActivation called, App moving to inactive state."); } public override void DidEnterBackground(UIApplication application) { Console.WriteLine("App entering background state."); } // not guaranteed that this will run public override void WillTerminate(UIApplication application) { Console.WriteLine("App is terminating."); }
Inicie o aplicativo no simulador ou no dispositivo.
OnActivated
será chamado quando o aplicativo for iniciado. O aplicativo agora está no estado Ativo .Pressione o botão Início no simulador ou dispositivo para trazer o aplicativo para o segundo plano.
OnResignActivation
eDidEnterBackground
será chamado à medida que o aplicativo faz a transição deActive
e paraInactive
oBackgrounded
estado. Como não há nenhum código de aplicativo definido para ser executado em segundo plano, o aplicativo é considerado suspenso na memória.Navegue de volta para o aplicativo para trazê-lo de volta ao primeiro plano.
WillEnterForeground
eOnActivated
ambos serão chamados:A seguinte linha de código no controlador de exibição é executada quando o aplicativo entrou no primeiro plano a partir do plano de fundo e altera o texto exibido na tela:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
Pressione o botão Início para colocar o aplicativo em segundo plano. Em seguida, toque duas vezes no botão Início para abrir o seletor de aplicativos. No iPhone X, passe o dedo para cima a partir da parte inferior da tela:
Localize o aplicativo no App Switcher e deslize para cima para removê-lo (no iOS 11, pressione por muito tempo até que os ícones vermelhos apareçam no canto):
O iOS encerrará o aplicativo. Observe que WillTerminate
não é chamado porque o aplicativo já está suspenso em segundo plano.