Demo zum Anwendungslebenszyklus für Xamarin.iOS

In diesem Artikel und Beispielcode werden die vier Anwendungszustände in iOS und die Rolle der AppDelegate Methoden bei der Benachrichtigung der Anwendung veranschaulicht, wenn sich Zustände ändern. Die Anwendung gibt Updates in der Konsole aus, wenn sich der Zustand der App ändert:

Die Beispiel-App

Die App gibt Updates in der Konsole aus, wenn sich der Zustand der App ändert.

Exemplarische Vorgehensweise

  1. Öffnen Sie das Projekt Lifecycle in der Projektmappe LifecycleDemo .

  2. Öffnen Sie die AppDelegate -Klasse. 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. Klicken Sie auf dem Simulator oder Gerät auf die Schaltfläche Start, um die Anwendung in den Hintergrund zu bringen. OnResignActivation und DidEnterBackground werden aufgerufen, wenn die App von Active und Inactive in den Backgrounded Zustand wechselt. Da kein Anwendungscode für die Ausführung im Hintergrund festgelegt ist, 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 werden beide aufgerufen:

    Zustandsänderungen, die in der Konsole ausgegeben werden

    Die folgende Codezeile im Ansichtscontroller wird ausgeführt, wenn die Anwendung aus dem Hintergrund in den Vordergrund gelangt ist und den auf dem Bildschirm angezeigten Text ändert:

    UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => {
        label.Text = "Welcome back!";
    });
    
  6. Drücken Sie die Schaltfläche Start , um die Anwendung im Hintergrund zu platzieren. Doppeltippen Sie dann auf die Schaltfläche Start , um den Anwendungsumschalter anzuzeigen. Wischen Sie auf dem iPhone 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 Sie nach oben, um eine ausgeführte App zu entfernen.

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