Xamarin.Forms 應用程式生命週期

Application 基底類別可提供下列功能:

生命週期方法

Application 類別包含三個可供覆寫以回應生命週期變更的虛擬方法:

  • OnStart - 會在應用程式啟動時呼叫。
  • OnSleep - 會在每次應用程式被移到背景時呼叫。
  • OnResume - 會在應用程式被傳送到背景後又再次繼續時呼叫。

注意

「沒有」任何終止應用程式的方法。 正常情況下 (亦即非當機時) 會從 OnSleep 狀態終止應用程式,而不會提供程式碼任何其他通知。

若要觀察這些方法的呼叫時機,請在每個方法中實作 WriteLine 呼叫 (如下所示),並在每個平台上進行測試。

protected override void OnStart()
{
    Debug.WriteLine ("OnStart");
}
protected override void OnSleep()
{
    Debug.WriteLine ("OnSleep");
}
protected override void OnResume()
{
    Debug.WriteLine ("OnResume");
}

重要

在 Android 上,OnStart 方法將會被輪流呼叫,同時也會在應用程式首次啟動時被呼叫,前提是主要活動在 [Activity()] 屬性中缺少 ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation

Application 類別上有兩個事件可提供頁面出現和消失的通知:

如果您想在畫面上出現頁面時追蹤它們,則可使用這些事件。

注意

PageAppearingPageDisappearing 事件是分別在 Page.AppearingPage.Disappearing 事件引發之後,立即從 Page 基底類別引發。

Application 類別上有四個事件,每個都有自己的事件引數,可讓您回應顯示與關閉的強制回應頁面:

  • ModalPushing - 會在頁面被強制推送時引發。
  • ModalPushed - 會在頁面被強制推送後引發。
  • ModalPopping - 會在頁面被強制快顯時引發。
  • ModalPopped - 會在頁面被強制快顯後引發。

注意

ModalPopping 事件引數 (ModalPoppingEventArgs 型別) 包含 Cancel 屬性。 當 Cancel 設為 true 時,強制回應快顯已取消。