Ukázka životního cyklu aplikace pro Xamarin.iOS

Tento článek a vzorový kód demonstrují čtyři stavy aplikace v iOSu a roli AppDelegate metod při upozorňování aplikace na to, kdy se stavy změní. Aplikace vytiskne aktualizace konzoly pokaždé, když aplikace změní stav:

Ukázková aplikace

Aplikace vytiskne aktualizace konzoly při každé změně stavu aplikace.

Názorný postup

  1. Otevřete projekt Životního cyklu v řešení LifecycleDemo.

  2. AppDelegate Otevřete třídu. Protokolování bylo přidáno do metod životního cyklu, které indikují, kdy aplikace změnila stav:

    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. Spusťte aplikaci v simulátoru nebo na zařízení. OnActivated bude volána při spuštění aplikace. Aplikace je teď ve stavu Aktivní .

  4. Stisknutím tlačítka Domů na simulátoru nebo zařízení přeneste aplikaci na pozadí. OnResignActivation a DidEnterBackground bude volána jako přechod aplikace ze Active stavu do Inactive a do Backgrounded stavu. Vzhledem k tomu, že na pozadí není nastavený žádný kód aplikace, je aplikace považována za pozastavenou v paměti.

  5. Vraťte se do aplikace, abyste ji vrátili do popředí. WillEnterForeground a OnActivated oba budou volána:

    Změny stavu vytištěné v konzole

    Následující řádek kódu v kontroleru zobrazení se spustí, když aplikace zadá popředí z pozadí a změní text zobrazený na obrazovce:

    UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => {
        label.Text = "Welcome back!";
    });
    
  6. Stisknutím tlačítka Domů aplikaci umístěte na pozadí. Potom poklepejte na tlačítko Domů a zobrazte přepínač aplikace. Na i Telefon X potáhněte prstem nahoru ze spodní části obrazovky:

    Přepínač aplikace

  7. Vyhledejte aplikaci v přepínači aplikací a potáhnutím prstem nahoru ji odeberte (v iOSu 11 stiskněte dlouho, dokud se v rohu nezobrazí červené ikony):

    Potáhnutím prstem nahoru odeberte spuštěnou aplikaci.

iOS aplikaci ukončí. Všimněte si, že není volána, WillTerminate protože aplikace je již pozastavena na pozadí.