在应用程序中显示提醒时回拨

时间:2011-12-26 22:09:17

标签: windows-phone-7

我需要知道在我的应用中显示我的应用中的提醒。我想我会尝试在OnNavigatedTo中输入必要的代码,这会在提醒弹出窗口被取消时调用,但事实并非如此。

所以我正在寻找一些方法在显示/解除提醒时在我的应用程序中获得回调。

2 个答案:

答案 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);
        }
    }
}

答案 1 :(得分:0)

我使用RootFrame的无遮挡事件检查我的提醒是否已显示。效果很好! :)