Demostración del ciclo de vida de la aplicación para Xamarin.iOS

En este artículo y código de ejemplo se muestran los cuatro estados de aplicación en iOS y el rol de los métodos de AppDelegate para notificar a la aplicación de cuándo se cambian los estados. La aplicación imprimirá actualizaciones en la consola cada vez que cambie el estado de la aplicación:

La aplicación de ejemplo

La aplicación imprimirá actualizaciones en la consola cada vez que cambie el estado de la aplicación

Tutorial

  1. Abra el proyecto Lifecycle en la solución LifecycleDemo.

  2. Abra la clase AppDelegate. El registro se ha agregado a los métodos de ciclo de vida para indicar cuándo ha cambiado el estado de la aplicación:

    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 la aplicación en el simulador o en el dispositivo. Se llamará a OnActivated cuando se inicie la aplicación. La aplicación está ahora en estado Activo.

  4. Presione el botón Inicio del simulador o dispositivo para poner la aplicación en segundo plano. Se llamará a OnResignActivation y DidEnterBackground cuando la aplicación pase de Active a Inactive y al estado Backgrounded. Dado que no hay ningún código de aplicación establecido para ejecutarse en segundo plano, la aplicación se considera suspendida en la memoria.

  5. Vuelva a la aplicación para traerla de nuevo al primer plano. Se llamará a WillEnterForeground y OnActivated:

    Cambios de estado impresos en la consola

    La siguiente línea de código en el controlador de vista se ejecuta cuando la aplicación ha pasado al primer plano desde el segundo plano, y cambia el texto que aparece en la pantalla:

    UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => {
        label.Text = "Welcome back!";
    });
    
  6. Presione el botón Inicio para colocar la aplicación en segundo plano. A continuación, pulse dos veces en el botón Inicio para abrir el conmutador de aplicación. En iPhone X, deslice el dedo hacia arriba desde la parte inferior de la pantalla:

    Modificador de aplicación

  7. Busque la aplicación en el conmutador de aplicaciones y deslice el dedo hacia arriba para quitarla (en iOS 11, mantenga presionado hasta que aparezcan los iconos rojos en la esquina):

    Desliza el dedo hacia arriba para quitar una aplicación en ejecución

iOS finalizará la aplicación. Tenga en cuenta que no se llama a WillTerminate porque la aplicación ya está suspendida en segundo plano.