_.CreateTileUpdaterForApplication()tileUpdater.AddToSchedule(tileNotification)「スケジュールされたタイル通知」を作って登録するコード(上:C#、下:VB)なお、時刻を表示させ続けるには、開始時刻/終了時刻を1分ずつずらして上のコードをループさせて、例えば120回(2時間)の通知を一度に登録する。その後、バックグラウンド・タスクで60分おきくらいに追加登録するとよい。本稿で示したコードは、そのままバックグラウンド・タスクでも動作する。バックグラウンド・タスクは予定していた時刻に正確に始まるとは限らないので、余裕を見ておくことが必要だ。追加登録の際には通知キューの中を調べて、重複して登録してしまわないようにする(後述)。●スケジュールされたタイル通知をセカンダリ・タイルに登録するには?セカンダリ・タイル用のTileUpdaterオブジェクトを使って通知キューに登録すればよい。それ以外は同じである。前回で説明したようにしてセカンダリ・タイルがすでに表示されているとする。そのタイルIDは“UtcTile”だとしよう。この場合、TileUpdaterオブジェクトは次のコードのようにして取得する。該当するセカンダリ・タイルがないときには例外が出るので、注意してほしい。_.CreateTileUpdaterForSecondaryTile("UtcTile")セカンダリ・タイル用のTileUpdaterオブジェクトを取得するコード(上:C#、下:VB)●通知キューの中を調べるには?TileUpdaterクラスのGetScheduledTileNotificationsメソッドで、通知キューに入っている通知のリストが取得できる。特定の通知ID(=targetId)を持っている通知が入っているかどうかを判定するには、次のようにする。コードを応用して、メインのタイルにはローカル時刻を、セカンダリ・タイルにはUTC(協定世界時)を表示してみた。分の桁は、完全にぴったりとはいかないものの数秒と違えることなく変わっていく。実行結果(スタート画面の一部)左は、既定のタイル。ローカル時刻が表示されている。右は、セカンダリ・タイル。UTCが表示されている。●まとめ「スケジュールされたタイル通知」を利用して、スタート画面のタイルに現在時刻を表示することができた。あとは、バックグラウンド・タスクで定期的に通知を追加してやれば、ずっと動き続ける時計が出来上がるだろう。筆者が実験したところでは、1秒単位の通知ではタイルが更新されなかった(既定のタイルのままとなった)。その原因は仕様によるものか、ハードウェアの性能によるものかは分からない。千個を超すような大量の通知を登録するにはかなりの時間が掛かった。バックグラウンド・タスクで処理するならば百個程度にとどめておいた方がよいだろう。詳しくは、次のドキュメントを参考にしてほしい。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。