Anwendungslebenszyklus-Demo für Xamarin.iOS
In diesem Artikel und Beispielcode werden die vier Anwendungszustände in iOS und die Rolle der AppDelegate
Methoden beim Benachrichtigen der Anwendung veranschaulicht, wann Zustände geändert werden. Die Anwendung druckt Aktualisierungen an der Konsole, wenn sich der Zustand der App ändert:
Exemplarische Vorgehensweise
Öffnen Sie das Lifecycle-Projekt in der LifecycleDemo-Lösung.
Öffnen Sie den
AppDelegate
Kurs. Die Protokollierung wurde den Lebenszyklusmethoden hinzugefügt, um anzugeben, wann sich der Zustand der Anwendung geändert hat: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."); }
Starten Sie die Anwendung im Simulator oder auf dem Gerät.
OnActivated
wird aufgerufen, wenn die App gestartet wird. Die Anwendung befindet sich jetzt im Status "Aktiv ".Drücken Sie die Starttaste auf dem Simulator oder Gerät, um die Anwendung in den Hintergrund zu bringen.
OnResignActivation
DidEnterBackground
und wird aufgerufen, wenn die App vonActive
zuInactive
und in denBackgrounded
Zustand wechselt. Da im Hintergrund kein Anwendungscode ausgeführt werden soll, gilt die Anwendung als angehalten im Arbeitsspeicher.Navigieren Sie zurück zur App, um sie wieder in den Vordergrund zu bringen.
WillEnterForeground
undOnActivated
beide werden aufgerufen:Die folgende Codezeile im Ansichtscontroller wird ausgeführt, wenn die Anwendung den Vordergrund aus dem Hintergrund eingegeben hat, und ändert den auf dem Bildschirm angezeigten Text:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
Drücken Sie die Schaltfläche "Start ", um die Anwendung in den Hintergrund zu versetzen. Doppeltippen Sie dann auf die Schaltfläche "Start ", um den Anwendungsschalter anzuzeigen. Wischen Sie auf dem i Telefon X vom unteren Bildschirmrand nach oben:
Suchen Sie die Anwendung im App-Switcher, und wischen Sie nach oben, um sie zu entfernen (unter iOS 11 drücken Sie lange, bis die roten Symbole in der Ecke angezeigt werden):
iOS beendet die Anwendung. Beachten Sie, dass nicht WillTerminate
aufgerufen wird, da die Anwendung bereits im Hintergrund angehalten wurde.