2016-07-05 8 views
1

TimerTigger()のバックグラウンドタスクは正常に動作しています。私がデバッグしたいとき、私はライフサイクルイベントからそれを行うことができます。しかし、私がPushNotificationTrigger()を使うとバックグラウンドタスクをデバッグすることができません。私はどこに間違っているのか分からない、助けてください。 This is what I get on Lifecycle Events while debugging. これは私が我々のコードや設定ファイルをチェックして、これは私のアプリのPackage.appxmanifestコードで、私は生の通知のためのバックグラウンドタスクを登録していますかバックグラウンドタスクPushNotificationTrigger()を使用して

<Extensions> 
     <Extension Category="windows.backgroundTasks" EntryPoint="NotificationActionBackgroundTask.NotificationActionBG"> 
      <BackgroundTasks> 
      <Task Type="pushNotification" /> 
      </BackgroundTasks> 
     </Extension> 
     </Extensions> 

答えて

1

if (!Windows.ApplicationModel.Background.BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name == "PushBackgroundTask")) 
      { 
       var result = await BackgroundExecutionManager.RequestAccessAsync(); 
       var builder = new BackgroundTaskBuilder(); 

       builder.Name = "PushBackgroundTask"; 
       builder.TaskEntryPoint = typeof(NotificationActionBackgroundTask.NotificationActionBG).FullName; 
       builder.SetTrigger(new Windows.ApplicationModel.Background.PushNotificationTrigger()); 
       BackgroundTaskRegistration task = builder.Register(); 
      } 

あり、それはと思われますそれらは正しいはずです、バックグラウンドタスクの名前をあなたのデバッグのライフサイクルイベントウィンドウに表示させるには、バックグラウンドタスクを登録した後にライフサイクルイベントウィンドウ内で"サスペンド"イベントをクリックする必要があります。その後、ライフサイクルイベントウィンドウ内にBackgroundtaskの名前が表示されます。

これでもうまくいかない場合は、バックグラウンドタスクを正常に登録した場合にのみ、バックグラウンドタスクを正しく登録してから、バックグラウンドタスクを使用してデバッグできます。もしそうなら、レジスタメソッドの中にブレークポイントを入れて何が起こるか見てみてください。

Debug a background task

は、詳細については、以下の二つの記事をチェックしてください。

Background tasks triggered by raw notifications

関連する問題