UWP では、OnBackgroundActivated クラスのApplicationをオーバーライドすることで、アプリと同じプロセスでアプリ サービスをホストできます。 Windows アプリ SDKはこのパターンをサポートしていません。
インプロセス アプリ サービスが利用できない理由
Microsoft.UI.Xaml.ApplicationはOnBackgroundActivatedオーバーライドを定義せず、ExtendedActivationKind (アプリがアクティブ化された方法を検査するために使用する列挙型Windows アプリ SDK) にはAppServiceメンバーがありません。 このため、Windows アプリ SDK アプリ独自のプロセスでアプリ サービスのアクティブ化を受け取る方法はサポートされていません。 Windows アプリ SDK上のアプリ サービスは、常にプロセス外のバックグラウンド タスクとして実行する必要があります。
代わりに使用する内容
-
アプリ サービスを提供するには、別プロセスで実装してください。
IBackgroundTaskを実装する別のWindows ランタイム コンポーネント プロジェクトを作成し、マニフェストのEntryPoint拡張機能でappServiceとして参照します。 このパターンは、UWP アプリと Windows アプリ SDK プロバイダー アプリの両方で機能します。 手順については、「 アプリ サービスの作成と使用」を参照してください。 -
同じアプリ内でデータの共有や機能の呼び出しのみが必要な場合は、アプリ サービスや
AppServiceConnectionは必要ありません。 コードは同じプロセスで実行されるため、プロセス間通信を介して呼び出しをルーティングするのではなく、共有クラスまたはメソッドを直接呼び出します。
関連するコンテンツ
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Windows developer