Xamarin.Forms アプリのライフサイクル
Application
の基底クラスでは、次の機能が提供されています。
- ライフサイクル メソッド
OnStart
、OnSleep
、OnResume
。 - ページ ナビゲーション イベント
PageAppearing
、PageDisappearing
。 - モーダル ナビゲーション イベント
ModalPushing
、ModalPushed
、ModalPopping
、ModalPopped
。
ライフサイクル メソッド
Application
クラスには 3 つの仮想メソッドが含まれており、それをオーバーライドしてライフサイクルの変化に対応できます。
OnStart
- アプリケーションの起動時に呼び出されます。OnSleep
- アプリケーションがバックグラウンドに移行するたびに呼び出されます。OnResume
- バックグラウンドに送られたアプリケーションが再開するときに呼び出されます。
Note
アプリケーションの終了のメソッドはありません。 通常の (つまり、クラッシュではない) 状況では、アプリケーションの終了は 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
クラスには、ページの表示と消去の通知を提供する 2 つのイベントがあります。
PageAppearing
- ページが画面に表示されようとしているときに発生します。PageDisappearing
- ページが画面から消去されようとしているときに発生します。
画面に表示されるページを追跡する必要があるシナリオで、これらのイベントを使用できます。
Note
PageAppearing
イベントと PageDisappearing
イベントは、それぞれ Page.Appearing
イベントと Page.Disappearing
イベントの直後に、Page
基底クラスから生成されます。
モーダル ナビゲーション イベント
Application
クラスには、それぞれが独自のイベント引数を持つ 4 つのイベントがあり、それを使用してモーダル ページの表示と消去に応答できます。
ModalPushing
- ページがモーダルでプッシュされるときに発生します。ModalPushed
- ページがモーダルでプッシュされた後に発生します。ModalPopping
- ページがモーダルでポップされるときに発生します。ModalPopped
- ページがモーダルでポップされた後に発生します。
Note
型が ModalPoppingEventArgs
である ModalPopping
のイベント引数には、Cancel
プロパティが含まれています。 Cancel
が true
に設定されると、モーダル ポップアップは取り消されます。