今回はWindowsPhone7に用意されているリマインダーについてご紹介します。
リマインダーはユーザが指定した時刻にダイアログを表示しユーザに知らせる仕組みです。
アラームと同等の機能となりますがリマインダーには再通知の機能があります。
リマインダー機能を使うにはReminderクラスを使います。
リマインダーを使うには以下のことが必要となります。
- リマインダーの設定
- リマインダーのイベントを発生させる設定
詳しい内容は続きを御覧ください。
リマインダーの設定
リマインダーは条件が合えばダイアログを表示します。
そこでリマインダーで設定できる項目は下記のとおりになります。
繰り返し設定RecurrenceTypeは下記の設定が可能です。
[table “257” not found /]例えばTitleを「ReminderApp リマインダー」、Contentを「30秒立ちました」、30秒後~1分間の間はこのリマインダーを有効、毎月繰り返す設定にする場合は下記のようになります。
var reminder = new Reminder("reminder"); reminder.Title = "ReminderApp リマインダー"; reminder.Content = "30秒立ちました"; reminder.BeginTime = DateTime.Now.AddSeconds(30); reminder.ExpirationTime = DateTime.Now.AddMinutes(1); reminder.RecurrenceType = RecurrenceInterval.Monthly;
これでReminederの設定は完了です。
リマインダーのイベントを発生させる設定
リマインダーの設定は完了しましたがOSに対して実行するように伝えていません。
そこでアラームで用いられたScheduledActionServiceを利用することによってOSにアクションを登録して実行してもらいます。
実際にリマインダーのアクションを追加する処理を先ほどのソースコードに追加すると下記のようになります。
if (ScheduledActionService.Find("reminder") != null) { ScheduledActionService.Remove("reminder"); // すでに登録済みのreminderを登録削除 } var reminder = new Reminder("reminder"); reminder.Title = "ReminderApp リマインダー"; reminder.Content = "30秒立ちました"; reminder.BeginTime = DateTime.Now.AddSeconds(30); reminder.ExpirationTime = DateTime.Now.AddMinutes(1); reminder.RecurrenceType = RecurrenceInterval.Monthly; ScheduledActionService.Add(reminder); // Action登録
1分後にはオブジェクトが無効になるのでこのリマインダーは破棄されてしまいます。