Freigeben über


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:

Die Beispiel-App

Die App druckt Aktualisierungen an der Konsole, wenn sich der Zustand der App ändert.

Exemplarische Vorgehensweise

  1. Öffnen Sie das Lifecycle-Projekt in der LifecycleDemo-Lösung.

  2. Ö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.");
    }
    
  3. 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 ".

  4. Drücken Sie die Starttaste auf dem Simulator oder Gerät, um die Anwendung in den Hintergrund zu bringen. OnResignActivationDidEnterBackground und wird aufgerufen, wenn die App von Active zu Inactive und in den Backgrounded Zustand wechselt. Da im Hintergrund kein Anwendungscode ausgeführt werden soll, gilt die Anwendung als angehalten im Arbeitsspeicher.

  5. Navigieren Sie zurück zur App, um sie wieder in den Vordergrund zu bringen. WillEnterForeground und OnActivated beide werden aufgerufen:

    Zustandsänderungen, die in der Konsole gedruckt werden

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

    Der Anwendungsumschalter

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

    Wischen Nach oben, um eine ausgeführte App zu entfernen

iOS beendet die Anwendung. Beachten Sie, dass nicht WillTerminate aufgerufen wird, da die Anwendung bereits im Hintergrund angehalten wurde.