2011-12-26 15 views
1

私のアプリの中に表示されているときに私のアプリからのリマインダを知る必要があります。私はOnNavigatedToに必要なコードを入れようとしていると思っていましたが、リマインダポップアップが解除されたときに呼び出されますが、そうではありません。通知がアプリケーションに表示されたときのコールバック

私はリマインダの表示/非表示時にアプリケーションでコールバックを取得する方法を探しています。

答えて

0

私はリマインダーが表示されているかどうかを確認するために、ルーフフレームの邪魔されないイベントを使用しました。よく働く! :)

0

これは私が思いつくことができる最高です。 Reminderとスケジューラーサービスにはイベントを登録するメカニズムがありません(おそらくあなたがこの質問をした理由です)、私はこのルートを試してみます。 コードは自明です。あなたは、リマインダが期日と同時に実行されるタイマーを登録します。ただし、タイマーティックは、リマインダーをトリガーするスレッドによってトリガーされず、同時に実行されます。あなたが登録できるコールバックがあり、あなたのメソッドを呼び出すでしょう。

public class MyReminder : Microsoft.Phone.Scheduler.ScheduledNotification 
{ 
    public Action MyCallback { get; set; } 

    public void TimerCallback(object state) 
    { 
     if (MyCallback != null) 
     { 
      try 
      { 
       MyCallback(); 
      } 
      catch { } 
     } 
    } 

    public override DateTime ExpirationTime 
    { 
     get 
     { 
      return base.ExpirationTime; 
     } 
     set 
     { 
      base.ExpirationTime = value; 

      System.Threading.Timer timer = new System.Threading.Timer(TimerCallback); 
      timer.Change((long)(value - DateTime.Now).TotalMilliseconds, Timeout.Infinite); 
     } 
    } 
} 
関連する問題