Partilhar via


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:

O aplicativo de exemplo

O aplicativo imprimirá atualizações no console sempre que o aplicativo mudar de estado

Passo a passo

  1. Abra o projeto Lifecycle na solução LifecycleDemo .

  2. 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.");
    }
    
  3. Inicie o aplicativo no simulador ou no dispositivo. OnActivated será chamado quando o aplicativo for iniciado. O aplicativo agora está no estado Ativo .

  4. Pressione o botão Início no simulador ou dispositivo para trazer o aplicativo para o segundo plano. OnResignActivation e DidEnterBackground será chamado à medida que o aplicativo faz a transição de Active e para Inactive o Backgrounded estado. Como não há nenhum código de aplicativo definido para ser executado em segundo plano, o aplicativo é considerado suspenso na memória.

  5. Navegue de volta para o aplicativo para trazê-lo de volta ao primeiro plano. WillEnterForeground e OnActivated ambos serão chamados:

    Alterações de estado impressas no console

    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!";
    });
    
  6. 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:

    O seletor de aplicativos

  7. 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):

    Passe o dedo para cima para remover um aplicativo em execução

O iOS encerrará o aplicativo. Observe que WillTerminate não é chamado porque o aplicativo já está suspenso em segundo plano.