kazuakix の日記

Windows Phone とか好きです

Windows Phone 8.1 のバックグラウンド タスクをデバッグする

昨日の訂正

まず最初に昨日の訂正。

1.追加するプロジェクトは「クラスライブラリ (ユニバーサル アプリ用ポータブル)」 ではなく「 Windows ランタイム コンポーネント (ユニバーサル アプリ用ポータブル)」でした。

f:id:kazuakix:20141005160237j:plain,w500

クラスライブラリでもタスクの登録まではできたんですが、動作していませんでした。

2.バックグラウンド タスク登録前に RequestAccessAsync を呼ぶ。

public async void RegisterBackgroundTask(string taskName, string taskEntryPoint)
{
    // タスク登録前に必要
    await BackgroundExecutionManager.RequestAccessAsync();
    // 以下同じ

あってもなくてもエラーにならなかったので途中で外してしまったのですが、最初に呼ばないと登録できていませんでした。

@biac さん 指摘ありがとうございました。

バックグラウンド タスクをデバッグする

ここからが本題。 Silverlight アプリでは LaunchForTest メソッドでデバッグの時だけ短い間隔でスケジュールを呼び出していましたが、ユニバーサルアプリの場合は VS から即座にタスクを呼び出してテストすることができます。
 
アプリでタスクを登録した状態でデバック実行し、デバッグの場所ツールバー の場所ドロップダウンで登録したタスクの名前を選択します。

f:id:kazuakix:20141005174641j:plain,w500
 
デバッグの場所ツールバーがない場合は、[表示]-[ツールバー] から開きましょう。

f:id:kazuakix:20141005174648j:plain,w500
 
名前を選択すると即座にタスクが実行されるので適当にブレークポイントを設定しておけばデバッグが可能です。