我需要知道在我的应用中显示我的应用中的提醒。我想我会尝试在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);
}
}
}
答案 1 :(得分:0)
我使用RootFrame的无遮挡事件检查我的提醒是否已显示。效果很好! :)