重要な API
SystemTrigger イベントに応答するバックグラウンド タスクを作成する方法について説明します。
このトピックでは、アプリ用に作成されたバックグラウンド タスク クラスがあり、インターネットの可用性が変更されたときやユーザーがログインしたときなど、システムによってトリガーされたイベントに応答してこのタスクを実行する必要があることを前提としています。 このトピックでは、 SystemTrigger クラスについて説明します。 バックグラウンド タスク クラスの記述の詳細については、「インプロセス バックグラウンド タスクの作成と登録」または「アウトプロセス バックグラウンド タスクの作成と登録」を参照してください。
SystemTrigger オブジェクトを作成する
アプリのコードで、SystemTrigger の新しいオブジェクトを作成します。 最初のパラメーター triggerType は、このバックグラウンド タスクをアクティブにするシステム イベント トリガーの種類を指定します。 イベントの種類の一覧については、「 SystemTriggerType」を参照してください。
2 番目のパラメーター OneShot は、バックグラウンド タスクを次にシステム イベントが発生したときに 1 回だけ実行するか、タスクの登録が解除されるまでシステム イベントが発生するたびに実行するかを指定します。
次のコードは、インターネットが使用可能になったときにバックグラウンド タスクを実行することを指定します。
SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
Windows::ApplicationModel::Background::SystemTrigger internetTrigger{
Windows::ApplicationModel::Background::SystemTriggerType::InternetAvailable, false};
SystemTrigger ^ internetTrigger = ref new SystemTrigger(SystemTriggerType::InternetAvailable, false);
バックグラウンド タスクを登録する
バックグラウンド タスク登録関数を呼び出して、バックグラウンド タスクを登録します。 バックグラウンド タスクの登録の詳細については、「バックグラウンド タスクの登録」を参照してください。
次のコードは、アウトプロセスで実行されるバックグラウンド プロセスのタスクを登録します。 ホスト アプリと同じプロセスで実行されるバックグラウンド タスクを呼び出していた場合、 entrypoint
設定されません。
string entryPoint = "Tasks.ExampleBackgroundTaskClass"; // Namespace name, '.', and the name of the class containing the background task
string taskName = "Internet-based background task";
BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
std::wstring entryPoint{ L"Tasks.ExampleBackgroundTaskClass" }; // don't set for in-process background tasks.
std::wstring taskName{ L"Internet-based background task" };
Windows::ApplicationModel::Background::BackgroundTaskRegistration task{
RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition) };
String ^ entryPoint = "Tasks.ExampleBackgroundTaskClass"; // don't set for in-process background tasks
String ^ taskName = "Internet-based background task";
BackgroundTaskRegistration ^ task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
注
ユニバーサル Windows プラットフォーム アプリでは、いずれかの種類のバックグラウンド トリガーを登録する前に 、RequestAccessAsync を呼び出す必要があります。
更新プログラムをリリースした後もユニバーサル Windows アプリが引き続き正常に実行されるようにするには、RemoveAccess
注
バックグラウンド タスク登録パラメーターは、登録時に検証されます。 登録パラメーターのいずれかが無効な場合は、エラーが返されます。 バックグラウンド タスクの登録が失敗するシナリオをアプリが適切に処理していることを確認します。代わりに、アプリがタスクの登録を試みた後に有効な登録オブジェクトを持つことに依存している場合は、クラッシュする可能性があります。
注釈
バックグラウンド タスクの登録の動作を確認するには、 バックグラウンド タスクのサンプルをダウンロードします。
バックグラウンド タスクは SystemTrigger イベントと MaintenanceTrigger イベントに応答して実行できますが、 アプリケーション マニフェストでバックグラウンド タスクを宣言する必要があります。 また、バックグラウンド タスクの種類を登録する前に 、RequestAccessAsync を呼び出す必要があります。
アプリでは、 TimeTrigger、 PushNotificationTrigger、 NetworkOperatorNotificationTrigger イベントに応答するバックグラウンド タスクを登録できます。これにより、アプリがフォアグラウンドにない場合でも、ユーザーとのリアルタイム通信を提供できます。 詳細については、「 バックグラウンド タスクを使用したアプリのサポート」を参照してください。
関連トピック
- プロセス外のバックグラウンド タスクを作成して登録
- インプロセスのバックグラウンドタスクを作成して登録する
- アプリケーション マニフェスト でバックグラウンド タスクを宣言する
- 取り消されたバックグラウンド タスクの を処理する
- バックグラウンド タスクの進行状況と完了の を監視する
- バックグラウンド タスク を登録する
- バックグラウンド タスク を実行するための条件を設定する
- バックグラウンド タスクからライブ タイルを更新
- メンテナンス トリガー を使用する
- タイマー でバックグラウンド タスクを実行する
- バックグラウンドタスクのガイドライン
- バックグラウンド タスクの をデバッグする
- UWP アプリで一時停止、再開、およびバックグラウンド イベントをトリガーする方法 (デバッグ時)