Windows ストア アプリの中断イベント、再開イベント、およびバックグラウンド イベントをトリガーする方法

デバッグが行われていないときは、Windows の Process Lifecycle Management (PLM) によってアプリの実行状態 (ユーザー アクションに応じたアプリの起動、中断、再開、および終了) とデバイスの状態が管理されます。デバッグが行われているとき、これらのアクティブ化イベントは Windows によって無効にされます。このトピックでは、デバッガーでこれらのイベントを発生させる方法について説明します。

このトピックでは、バックグラウンド タスクをデバッグする方法についても説明します。バックグラウンド タスクは、アプリが実行されていない場合でもバックグラウンド プロセスで特定の操作を行うことを可能にします。デバッガーを使用してアプリをデバッグ モードに変更した後、UI の起動なしでバックグラウンド タスクを開始してデバッグできます。

Process Lifecycle Management とバックグラウンド タスクの詳細については、「Launching, resuming, and multitasking」を参照してください。

このトピックの内容

Trigger Process Lifecycle Management events

Trigger background tasks

  • Trigger a background task event from a standard debug session

  • Trigger a background task when the app is not running

Trigger Process Lifetime Management events and background tasks from an installed app

Diagnosing background task activation errors

Process Lifecycle Management イベントを発生させる

Windows では、ユーザーが他のアプリに切り替えた場合、または Windows が低電力状態に入った場合にアプリを中断できます。Suspending イベントに応答して、関連するアプリとユーザー データを永続ストレージに保存し、リソースを解放できます。中断状態から再開されたアプリは実行状態に入り、中断状態に入った時点の状態から実行を続行します。Resuming イベントに応答してアプリの状態を復元するか更新し、リソースを再要求できます。

Windows はできる限り多くの中断されたアプリをメモリに保持しようとしますが、十分なリソースが存在しない場合はアプリを終了できます。ユーザーもアプリを明示的に閉じることができます。ユーザーがアプリを閉じたことを示す特別なイベントはありません。

Visual Studio デバッガーでは、アプリを手動で中断、再開、および終了して、プロセスのライフサイクル イベントをデバッグできます。プロセスのライフサイクル イベントをデバッグするには:

  1. デバッグするイベントのハンドラーの中にブレークポイントを設定します。

  2. F5 キーを押してデバッグを開始します。

  3. [デバッグの場所] ツール バーで、トリガーするイベントを選択します。

    中断タスク、再開タスク、終了タスク、およびバックグラウンド タスク

    [Suspend and terminate] (中断して終了) は、アプリを閉じ、デバッグ セッションを終了します。

バックグラウンド タスクをトリガーする

すべてのアプリは、アプリが実行されていない場合でも特定のシステム イベントに応答するためのバックグラウンド タスクを登録できます。バックグラウンド タスクは、UI を直接更新するコードは実行できません。代わりに、タイルの更新、バッジの更新、およびトースト通知を使用して、ユーザーに情報を表示します。詳細については、「Supporting your app with background tasks」を参照してください。

アプリのバックグラウンド タスクを開始するイベントをデバッガーからトリガーできます。

注意

デバッガーは、データを含まないイベント (デバイスの状態の変更を示すイベントなど) だけをトリガーできます。ユーザー入力やその他のデータを必要とするバックグラウンド タスクは手動でトリガーする必要があります。

バックグラウンド タスク イベントをトリガーするための最も現実的な方法は、アプリが実行されていない時点です。ただし、標準デバッグ セッション中のイベントのトリガーもサポートされています。

Hh974425.collapse_all(ja-jp,VS.110).gif標準デバッグ セッションからバックグラウンド タスク イベントをトリガーする

  1. デバッグするバックグラウンド タスク コードの中にブレークポイントを設定します。

  2. F5 キーを押してデバッグを開始します。

  3. [デバッグの場所] ツール バーのイベントの一覧から、開始するバックグラウンド タスクを選択します。

    中断タスク、再開タスク、終了タスク、およびバックグラウンド タスク

Hh974425.collapse_all(ja-jp,VS.110).gifアプリが実行されていないときにバックグラウンド タスクをトリガーする

  1. デバッグするバックグラウンド タスク コードの中にブレークポイントを設定します。

  2. スタートアップ プロジェクトのデバッグ プロパティ ページを開きます。ソリューション エクスプローラーでプロジェクトを選択します。[デバッグ] メニューの [プロパティ] をクリックします。

    C++ プロジェクトの場合は、[構成プロパティ] を展開し、[デバッグ] をクリックする必要があります。

  3. 以下のいずれかを実行します。

    • Visual C# プロジェクトと Visual Basic プロジェクトの場合は、[起動しないが、開始時にコードをデバッグ] をクリックします。

      C#/VB デバッグ起動アプリケーション プロパティ

    • JavaScript プロジェクトと Visual C++ プロジェクトの場合は、[アプリケーションの起動] の一覧の [No] をクリックします。

      C++/VB 起動アプリケーションのデバッグ プロパティ

  4. F5 キーを押して、アプリをデバッグ モードにします。デバッグ モードであることを示すために、[デバッグの場所] ツール バーの [プロセス] の一覧にアプリのパッケージ名が表示されます。

    バックグラウンド タスクのプロセス リスト

  5. [デバッグの場所] ツール バーのイベントの一覧から、開始するバックグラウンド タスクを選択します。

    中断タスク、再開タスク、終了タスク、およびバックグラウンド タスク

インストール済みのアプリからプロセス継続時間管理イベントとバックグラウンド タスクをトリガーする

[インストールされているアプリケーション パッケージのデバッグ] ダイアログ ボックスを使用して、既にインストールされているアプリをデバッガーに読み込みます。たとえば、Windows ストアからインストールされたアプリや、ソース ファイルはあっても Visual Studio プロジェクトがないアプリをデバッグできます。[インストールされているアプリケーション パッケージのデバッグ] ダイアログ ボックスを使用すると、Visual Studio のコンピューターまたはリモート デバイスで、アプリをデバッグ モードで起動できます。また、アプリを起動せずにデバッグ モードで実行するように設定することもできます。詳細については、JavaScript バージョンまたは、Visual C++、Visual C#、Visual Basic バージョンの「デバッグ セッションを開始する方法」の「デバッガーでインストール済みのアプリを起動する」を参照してください。

アプリをデバッガーに読み込んだら、前の各手順を使用できます。

バックグラウンド タスクのアクティブ化エラーの診断

バックグラウンド インフラストラクチャ用の Windows イベント ビューアーの診断ログには、バックグラウンド タスク エラーの診断とトラブルシューティングを行うために使用できる詳細情報が含まれています。このログを表示するには:

  1. イベント ビューアー アプリケーションを開きます。

  2. 操作ウィンドウで、[表示] をクリックし、[分析およびデバッグ ログの表示] がオンになっていることを確認します。

  3. イベント ビューアー (ローカル) ツリーで、[Microsoft][Windows][BackgroundTasksInfrastructure] ノードの順に展開します。

  4. 診断ログを選択します。

参照

概念

Windows ストア アプリのデバッグ

その他の技術情報

Windows ストア アプリのデバッグおよびテスト

Application lifecycle

Launching, resuming, and multitasking