リマインダーを利用する
|今回はWindowsPhone7に用意されているリマインダーについてご紹介します。
リマインダーはユーザが指定した時刻にダイアログを表示しユーザに知らせる仕組みです。
アラームと同等の機能となりますがリマインダーには再通知の機能があります。
リマインダー機能を使うにはReminderクラスを使います。
リマインダーを使うには以下のことが必要となります。
- リマインダーの設定
- リマインダーのイベントを発生させる設定
詳しい内容は続きを御覧ください。
リマインダーの設定
リマインダーは条件が合えばダイアログを表示します。
そこでリマインダーで設定できる項目は下記のとおりになります。
繰り返し設定RecurrenceTypeは下記の設定が可能です。
[table “257” not found /]例えばTitleを「ReminderApp リマインダー」、Contentを「30秒立ちました」、30秒後~1分間の間はこのリマインダーを有効、毎月繰り返す設定にする場合は下記のようになります。
1 2 3 4 5 6 | 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にアクションを登録して実行してもらいます。
実際にリマインダーのアクションを追加する処理を先ほどのソースコードに追加すると下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 | 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分後にはオブジェクトが無効になるのでこのリマインダーは破棄されてしまいます。