共用方式為


Xamarin.iOS 的應用程式生命周期示範

本文和範例程式代碼示範 iOS 中的四個應用程式狀態,以及在狀態變更時通知應用程式的方法角色 AppDelegate 。 每當應用程式變更狀態時,應用程式就會列印主控台的更新:

範例應用程式

每當應用程式變更狀態時,應用程式就會列印主控台的更新

逐步解說

  1. LifecycleDemo 解決方案中開啟生命周期專案。

  2. 開啟類別 AppDelegate 。 記錄已新增至生命週期方法,以指出應用程式何時變更狀態:

    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. 在模擬器或裝置上啟動應用程式。 OnActivated 會在應用程式啟動時呼叫。 應用程式現在處於作用狀態。

  4. 按兩下模擬器或裝置上的 [首頁] 按鈕,將應用程式帶入背景。 OnResignActivationDidEnterBackground 應用程式從 Active 轉換到 Inactive 狀態時 Backgrounded 呼叫 。 由於背景中沒有設定要執行的應用程式程式碼,因此應用程式會 被視為在記憶體中暫停

  5. 瀏覽回應用程式,將它帶回前景。 WillEnterForegroundOnActivated 都會呼叫:

    列印至主控台的狀態變更

    當應用程式從背景進入前景,並變更螢幕上顯示的文字時,就會執行檢視控制器中的下列程式代碼行:

    UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => {
        label.Text = "Welcome back!";
    });
    
  6. 按下 [ 首頁 ] 按鈕,將應用程式放入背景。 然後,按兩下 [首頁 ] 按鈕以顯示應用程式切換器。 在 i 電話 X 上,從螢幕底部向上撥動:

    應用程式切換器

  7. 在應用程式切換器中找出應用程式,然後向上撥動以移除它(在 iOS 11 上,長按直到紅色圖示出現在角落):

    向上撥動以移除執行中的應用程式

iOS 將會終止應用程式。 請注意,WillTerminate由於應用程式已在背景中暫停,因此不會呼叫 。