Xamarin.iOS 的應用程式生命周期示範
本文和範例程式代碼示範 iOS 中的四個應用程式狀態,以及在狀態變更時通知應用程式的方法角色 AppDelegate
。 每當應用程式變更狀態時,應用程式就會列印主控台的更新:
逐步解說
在 LifecycleDemo 解決方案中開啟生命周期專案。
開啟類別
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."); }
在模擬器或裝置上啟動應用程式。
OnActivated
會在應用程式啟動時呼叫。 應用程式現在處於作用中狀態。按兩下模擬器或裝置上的 [首頁] 按鈕,將應用程式帶入背景。
OnResignActivation
與DidEnterBackground
應用程式從Active
轉換到Inactive
狀態時Backgrounded
呼叫 。 由於背景中沒有設定要執行的應用程式程式碼,因此應用程式會 被視為在記憶體中暫停 。瀏覽回應用程式,將它帶回前景。
WillEnterForeground
和OnActivated
都會呼叫:當應用程式從背景進入前景,並變更螢幕上顯示的文字時,就會執行檢視控制器中的下列程式代碼行:
UIApplication.Notifications.ObserveWillEnterForeground ((sender, args) => { label.Text = "Welcome back!"; });
按下 [ 首頁 ] 按鈕,將應用程式放入背景。 然後,按兩下 [首頁 ] 按鈕以顯示應用程式切換器。 在 i 電話 X 上,從螢幕底部向上撥動:
在應用程式切換器中找出應用程式,然後向上撥動以移除它(在 iOS 11 上,長按直到紅色圖示出現在角落):
iOS 將會終止應用程式。 請注意,WillTerminate
由於應用程式已在背景中暫停,因此不會呼叫 。