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:
Tutorial
Abra el proyecto Lifecycle en la solución LifecycleDemo.
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."); }
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.Presione el botón Inicio del simulador o dispositivo para poner la aplicación en segundo plano. Se llamará a
OnResignActivation
yDidEnterBackground
cuando la aplicación pase deActive
aInactive
y al estadoBackgrounded
. 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.Vuelva a la aplicación para traerla de nuevo al primer plano. Se llamará a
WillEnterForeground
yOnActivated
: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!"; });
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:
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):
iOS finalizará la aplicación. Tenga en cuenta que no se llama a WillTerminate
porque la aplicación ya está suspendida en segundo plano.