6.動作を確認する
最後に動作を確認します。
今回のトリガーに選んだTimeZoneChangeは、タイムゾーンの変更をトリガーとして実行されますので、OSのタイムゾーンを変更してください。
タイムゾーンの変更は、タスクバーの右端の日時が書かれた部分をクリックして「日付と時刻の設定の変更」をクリックします。
「日付と時刻」ウィンドウのタイムゾーンの変更ボタンから現在のタイムゾーン以外のタイムゾーンを選ぶと、バックグラウンドタスクが実行されます。
サンプルのストアアプリを一度終了して再起動すると、ローカルストレージに保存されたバックグラウンドタスクの実行結果を呼び出して表示します。
動作確認後は、変更したタイムゾーンを元(日本の場合「(UTC+09:00)大阪、札幌、東京」)に戻しておくことを忘れずに!!
バックグラウンドでのオーディオ再生
音楽プレイヤーなどのストアアプリで、ストアアプリがバックグラウンドに回っても音楽は再生を続けたい場合があります。その場合はバックグラウンドでのオーディオ再生が可能です。
バックグラウンドでのオーディオ再生については、「バックグラウンドでオーディオを再生する方法」のドキュメントを参照ください。
バックグラウンドダウンロード
ストアアプリが何らかのファイルをWebからダウンロードしている際、ストアアプリがバックグラウンドに回ってしまい、ダウンロードが終了するのを回避したいこともあるでしょう。そんなときは、バックグラウンドダウンロードを利用しましょう。
バックグラウンドダウンロードを利用すると、ダウンロードの途中でストアアプリがバックグラウンドに回ってもダウンロードを継続できます。
バックグラウンドダウンロードについては、「バックグラウンドでのデータの転送」のドキュメントを参照ください。
バックグラウンドからの通知操作
前回説明したトースト、タイルの定期的な更新などもバックグラウンドの処理に入ります。
バックグラウンドタスクのタイマートリガーなどでトースト、タイルの更新を呼び出すこともできますが、トースト、タイルに用意されたAPIを利用したバックグラウンド処理の方が以下の点で便利です。
- 記述が簡潔である
- マニフェストファイルの宣言が不要
ただし、トースト、タイルに用意されたAPIはそれだけしかできませんので、他の処理を組み合わせたい場合には向いていません。
バックグラウンド処理の動作を確認する
バックグラウンドタスクのデバッグはトリガーによる呼び出し以外にも、デバッグ中にVisual Studioから直接呼び出すことも可能です。
ストアアプリのデバッグ実行中に「中断」と表示されたメニューをプルダウンすると、バックグラウンドタスク名が表示されます。
中断表示がない場合は、「表示」→「ツールバー」→「デバッグの場所」で表示することができます。
またバックグラウンドタスクが正常に呼び出されていないのか、それとも処理の中で例外などで処理が落ちてしまっているか判別したいときは、デバック中であればブレークポイントを利用することも可能です。
バックグラウンドタスクが正常に動作しない場合の確認については、「バックグラウンドタスクをデバッグする方法」のドキュメントを参照してください。
バックグラウンドタスクの管理
最後に、バックグラウンドタスクの状態を管理する方法を紹介します。
登録されているバックグラウンドタスクを取得する
登録されているバックグラウンドタスクは、以下のコードで取得できます。
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
// それぞれのタスクに対する処理
}
バックグラウンドタスクのキャンセルを取得する
処理中にキャンセルされた場合、以下のようにイベントハンドラーで取得できます。
taskInstance.Canceled += new BackgroundTaskCanceledEventHandler(OnCanceled);
taskInstanceは、バックグラウンド処理のRunメソッドで渡される引数です。
まとめ
制限されたリソースの中とはいえ、ストアアプリのバックグラウンド処理ではさまざまなことが実行できます。
ロック画面対応や、AC電源の有無など知っておくポイントもいろいろありますので、ぜひ、バックグラウンドタスクをしっかり学んでうまく利用してください。
