次の方法で共有


Windows アプリ SDK アプリのライフサイクル

この記事では、デスクトップ アプリのライフサイクルの管理の概要Windows アプリ SDK説明します。

アプリのライフサイクルの概要

Windows アプリ SDK アプリのアプリケーション ライフサイクルは、UWP アプリと同じではありません。 Windows アプリ SDK アプリのライフサイクルは、他の .NET および Win32 デスクトップ アプリと似ています。 Windows アプリ SDKアプリ (UWP アプリなど) が開始および停止されます。 実行されているか、実行されていません。 ただし、UWP アプリとは異なり、中断および再開することはできません。 ウィンドウ レベルでは、アプリはイベントをサブスクライブして、ウィンドウがアクティブ化および非アクティブ化されたときに対応できます。

Microsoft.UI.Xaml.Application ライフサイクル

Application オブジェクトは、Windows アプリ SDK アプリのメイン エントリ ポイントです。 これは UWP Application クラスに似ていますが、いくつかの重要な違いがあります。 Application オブジェクトは、Windows アプリ SDK フレームワークによって作成され、Microsoft.UI.Xaml.Application.Current プロパティからアクセスできます。

Windows アプリ SDKのApplication クラスには、アプリの起動時に呼び出されるライフサイクル メソッド OnLaunched が 1 つだけ含まれます。 OnLaunchedメソッドは、アプリのメイン ウィンドウを作成して表示する役割を担います。 OnLaunched メソッドは、Windows アプリ SDK フレームワークを初期化し、アプリを起動する役割も担います。 新しいWindows アプリ SDK アプリを作成すると、OnLaunchedメソッドが自動的に生成されます。

これに対し、UWP Application クラスには、 OnLaunchedOnActivatedOnBackgroundActivated など、アクティブ化関連のライフサイクル メソッドがいくつかあります。 OnActivatedメソッドとOnBackgroundActivated メソッドは、アプリがアクティブになると呼び出されます。 OnActivated メソッドは、アプリがユーザーによってアクティブ化されるときに呼び出され、OnBackgroundActivated メソッドは、アプリがシステムによってアクティブ化されるときに呼び出されます。

UWP の Application クラスには、 SuspendingResumingEnteredBackgroundLeavingBackground など、いくつかのライフサイクル イベントもあります。 Suspending イベントは、アプリが中断されたときに発生し、アプリが再開されたときにResuming イベントが発生します。 EnteredBackground イベントは、アプリがバックグラウンドに入ると発生し、アプリがバックグラウンドを離れるとLeavingBackground イベントが発生します。 UWP ライフサイクル イベントの詳細については、「 Windows 10 UWP アプリのライフサイクルを参照してください。

UWP アプリをWindows アプリ SDKに移行する場合は、アプリケーション ライフサイクル機能の移行ガイドを使用して、UWP と Windows アプリ SDK アプリのライフサイクルの違いを理解できます。

Microsoft.UI.Xaml.Window のライフサイクル

Windows アプリ SDK の Window オブジェクトには、Window.ActivatedWindow.Closedのライフサイクル イベントもあります。

Window.Activated

Activated イベントは、ウィンドウがシステムによってアクティブ化または非アクティブ化されたときに発生します。 アプリは、WindowActivatedEventArgs パラメーターの WindowActivationState プロパティを調べて、ウィンドウのアクティブ化の状態を確認できます。 このイベントは、ウィンドウが最小化または最大化されている場合を含め、ウィンドウがアクティブ化または非アクティブ化されるたびに発生します。

Window.Closed

ウィンドウが閉じると、 Closed イベントが発生します。 これが最後に閉じるウィンドウ (通常はアプリの MainWindow) の場合、アプリケーションは終了します。 Windows アプリ SDKのApplication オブジェクトによって発生するSuspending イベントがないため、メイン ウィンドウのClosed イベントを使用してアプリケーションの状態を保存し、マネージド リソースをクリーンアップする必要があります。

関連項目

アプリのライフサイクルとシステム サービス

UWP アプリのライフサイクル