Demo del ciclo di vita dell'applicazione per Xamarin.iOS
Questo articolo e il codice di esempio illustra i quattro stati dell'applicazione in iOS e il ruolo dei AppDelegate
metodi per notificare all'applicazione quando vengono modificati gli stati. L'applicazione stamperà gli aggiornamenti alla console ogni volta che l'app cambia stato:
scenario
Aprire il progetto Ciclo di vita nella soluzione LifecycleDemo .
Aprire la
AppDelegate
classe . La registrazione è stata aggiunta ai metodi del ciclo di vita per indicare quando l'applicazione ha cambiato stato: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."); }
Avviare l'applicazione nel simulatore o nel dispositivo.
OnActivated
verrà chiamato all'avvio dell'app. L'applicazione è ora nello stato Attivo .Premere il pulsante Home nel simulatore o nel dispositivo per portare l'applicazione in background.
OnResignActivation
eDidEnterBackground
verrà chiamato come l'app passa daActive
e versoInactive
loBackgrounded
stato. Poiché non è impostato alcun codice dell'applicazione da eseguire in background, l'applicazione viene considerata sospesa in memoria.Tornare all'app per riportarla in primo piano.
WillEnterForeground
eOnActivated
verranno entrambi chiamati:La riga di codice seguente nel controller di visualizzazione viene eseguita quando l'applicazione è entrata in primo piano dallo sfondo e modifica il testo visualizzato sullo schermo:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
Premere il pulsante Home per inserire l'applicazione in background. Toccare quindi doppio il pulsante Home per visualizzare l'interruttore dell'applicazione. Nell'i Telefono X scorrere verso l'alto dalla parte inferiore dello schermo:
Individuare l'applicazione nel commutatore app e scorrere verso l'alto per rimuoverla (in iOS 11, premere a lungo fino a quando le icone rosse non vengono visualizzate nell'angolo):
iOS terminerà l'applicazione. Si noti che WillTerminate
non viene chiamato perché l'applicazione è già sospesa in background.