言語: HTML | XAML

バックグラウンド タスクでシステム イベントに応答する方法 (XAML)

Applies to Windows and Windows Phone

SystemTrigger イベントに応答するバックグラウンド タスクを作る方法について学習します。

理解しておく必要があること

テクノロジ

必要条件

  • このトピックは、既にアプリにバックグラウンド タスク クラスが作られており、システムがトリガーするイベント (インターネットが利用できるようになる、ユーザーがログインするなど) に応じてこのタスクを実行する必要があることを前提としています。SystemTrigger クラスや MaintenanceTrigger クラスを使って登録されたバックグラウンド タスクを実行するためには、アプリがロック画面上にあることが必要です。ここでは、主に SystemTrigger クラスについて扱います。バックグラウンド タスク クラスの作成に関する詳しい情報については、「クイック スタート: バックグラウンド タスクの作成と登録」をご覧ください。

手順

ステップ 1: SystemTrigger オブジェクトを作る

  • アプリ コードで新規の SystemTrigger オブジェクトを作ります。 1 つ目のパラメーター triggerType には、このバックグラウンド タスクをアクティブ化するシステム イベント トリガーの種類を指定します。イベントの種類の一覧については、「SystemTriggerType」をご覧ください。

    2 つ目のパラメーター OneShot では、次回システム イベントが発生してバックグラウンド タスクをトリガーしたときに一度だけバックグラウンド タスクを実行するか、それともタスクの登録が解除されるまで、システム イベントが発生するたびにバックグラウンド タスクを実行するかを指定します。

    次のコードでは、インターネットが利用可能になるたびにバックグラウンド タスクを実行するように指定しています。

    
    SystemTrigger internetTrigger = new SystemTrigger(SystemTriggerType.InternetAvailable, false);
    
    

ステップ 2:

  • いつタスクを実行するかを制御するバックグラウンド タスクの条件を必要に応じて追加します。条件を指定すると、条件が満たされるまではバックグラウンド タスクが実行されないようにすることができます。詳しくは「バックグラウンド タスクを実行するための条件を設定する方法」をご覧ください。

    この例では、ユーザーが積極的にデバイスを利用している (ユーザーが存在する) 場合にのみバックグラウンド タスクが実行されるように、条件を UserPresent に設定しています。指定できるバックグラウンド タスク条件の一覧については、「SystemConditionType」をご覧ください。

    次のコードでは、バックグラウンド タスクに条件を追加しています。

    
    SystemCondition exampleCondition = new SystemCondition(SystemConditionType.UserPresent);
    
    

ステップ 3: バックグラウンド タスクの登録

  • バックグラウンド タスクの登録関数を呼び出してバックグラウンド タスクを登録します。バックグラウンド タスクの登録について詳しくは、「バックグラウンド タスクを登録する方法」をご覧ください。

    次のコードでは、バックグラウンド タスクを登録しています。

    
    string entryPoint = "Tasks.ExampleBackgroundTaskClass";
    string taskName   = "Internet-based background task";
    
    BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, internetTrigger, exampleCondition);
    
    
    • Applies to Windows Phone

    Windows Phone では、バックグラウンド タスクの登録を試みる前に RequestAccessAsync を呼び出す必要があります。Windows では、実行するにはアプリをロック画面に配置する必要があるバックグラウンド タスク セットにのみこの呼び出しが必要ですが、Phone ではどのバックグラウンド タスクを登録する場合でも、その前に一度このメソッドを呼び出す必要があります。

      

    Windows 8.1 以降では、バックグラウンド タスクの登録パラメーターが登録時に検証されます。いずれかの登録パラメーターが有効でない場合は、エラーが返されます。アプリは、バックグラウンド タスクの登録が失敗するシナリオを処理できる必要があります。たとえば、条件ステートメントを使って登録エラーを確認し、失敗した登録は別のパラメーター値を使ってやり直してみます。

注釈

バックグラウンド タスクの登録動作を確認するには、バックグラウンド タスクのサンプルをダウンロードしてください。

バックグラウンド タスクは、ロック画面上にない場合でも SystemTrigger イベントと MaintenanceTrigger イベントに応答して実行できます。ただし、その場合もアプリケーション マニフェストでバックグラウンド タスクを宣言する必要があります。電話では、どのバックグラウンド タスクの種類を登録する場合でも、その前に RequestAccessAsync も呼び出す必要があります。

ロック画面対応アプリでは、TimeTriggerPushNotificationTriggerNetworkOperatorNotificationTrigger の各イベントに応答するバックグラウンド タスクを登録することにより、アプリがフォアグラウンドにない場合でも、ユーザーとリアルタイムに通信することができるようになります。詳しくは、「バックグラウンド タスクによるアプリのサポート」をご覧ください。

関連トピック

クイック スタート: バックグラウンド タスクの作成と登録
バックグラウンド タスクを登録する方法
バックグラウンド タスクを実行するための条件を設定する方法
メンテナンス トリガーの使用方法
アプリケーション マニフェストでバックグラウンド タスクを宣言する方法
How to debug a background task
バックグラウンド タスクのガイドラインとチェック リスト

 

 

表示:
© 2014 Microsoft