2016-04-18 8 views
0

私はUAPアプリケーションを持っています.Windows 10 Phoneでデバッグすると、IBackgroundTaskが自動的に起動されます。ローカルマシン(Windows 10 x86)でデバッグすると、まったく呼び出されません。どうすればそれを起動できますか?Windows 10上でIBackgroundTaskを実行します。

+0

はどれ?どの「イベント」にトリガする必要がありますか? –

+0

[GattCharacteristicNotificationTrigger](https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.gattcharacteristicnotificationtrigger.gattcharacteristicnotificationtrigger) – Tyress

答えて

1

シンプルな方法は、システムトリガーを設定することです。マニフェストでは、 "システムイベント"プロパティを持つ "バックグラウンドタスク"宣言が必要です。あなたのC#コードで 、あなたのタスクを登録する必要があり、あなたが「NetworkStateChange」のような特定のイベントシステムにタスクをバインドすることができます。このコードで

foreach (var task in BackgroundTaskRegistration.AllTasks) 
{ 
    task.Value.Unregister(true); 
} 

var result = await BackgroundExecutionManager.RequestAccessAsync(); 
if (result == BackgroundAccessStatus.Denied) 
{ 
    return; 
} 

BackgroundTaskBuilder builder = new BackgroundTaskBuilder(); 
builder.Name = "<task name>"; 
builder.TaskEntryPoint = "<task entry point>"; 

builder.SetTrigger(new SystemTrigger(SystemTriggerType.NetworkStateChange, false)); 
var registration = builder.Register(); 

、あなたは上で手動操作でタスクを起動することができますネットワーク(Wi-Fiの切り替えまたはケーブルの抜き)

+0

こんにちは@ t.ouvre、あなたの答えに感謝します。私のコードはあなたのものと似ていますが、私はSetTriggerをSystemTriggerラインに置き換えました。あなたのコードはPCとモバイルの両方で動作します。私のバックグラウンドタスクはモバイルでのみ機能します。私はあなたの答えをアップアップしているので、問題が私の特定のトリガタイプかもしれないという指摘を与える – Tyress

0

デバッグ時には、Visual Studio 2015から直接バックグラウンドタスクをトリガーすることができます。Lifecycle Eventsというドロップダウンメニューがあり、Suspend,Resumeおよび登録済みのバックグラウンドタスクを呼び出すことができます。あらかじめタスクにブレークポイントを設定してください。 (私の場合はバックグラウンドタスクを実装するクラスは、NotifyChangesと呼ばれます。)タスクの種類は、それが

enter image description here

+0

これは何らかの理由で私のために働いていない! t.ouvreのNetworkStateChangedを使用して、バックグラウンドタスクがトリガーされますが、[バックグラウンドタスクはリストされていません](http://postimg.org/image/g8q07f7w5/) – Tyress

+0

マニフェストにバックグラウンドタスクがリストされていると思いますか? –

+0

はい、彼らは以下のとおりです。 <拡張分類= "windows.backgroundTasks" エントリーポイント= "MyClass.Task"> <タスクタイプ= "systemEvent" />(もっとここ) Tyress

関連する問題