(本記事はVisualStudio2012RC+Windows8RP環境で確認しております。製品版では動作が異なる可能性があるのでご注意ください。)
バックグラウンドタスクを登録する際に重複チェックをしないと同じ処理が2回呼び出されて困ったことになります。
C#版の対応は、MetroStyleApp入門 vol44.BackgroundTaskを実行する(2)中で紹介しましたので、参考にしてください。
JavaScriptの場合以下のようにチェックします。
// 重複を避けるためにすでに登録されたタスクがあったら取り消す
var iterator = Windows.ApplicationModel.Background.BackgroundTaskRegistration.allTasks.first();
var has = iterator.hasCurrent;
while(has)
{
var current = iterator.current.value;
if (current.name == "task name")
{
current.unregister(true);
}
has = iterator.moveNext();
}
iteratorとかhasCurrentとかなんだかJavaつぽい(偏見?)コードですね。
この辺はちょっとC#と違うのでご紹介。
Please give us your valuable comment