对于您的情况,我建议存储警报响起的时间。您可以将此信息存储在应用程序设置或文件中。当用户第一次要求安排提醒时,继续你正在做的事情,然后也节省闹钟的时间。您可能还想询问用户何时希望警报停止并保存。
为确保警报每隔一天响起,您需要在应用程序中添加一个后台代理。在代理中有一个 OnInvoke 方法。在此方法中,您将检查是否安排了警报。如果是,那么你无事可做。如果不是,则将其安排在第二天。代理大约每 30 分钟触发一次,因此 99% 的代理触发时间,警报/提醒已经安排好了。
这是放置在 OnInvoke 方法中的代码
string fileTitle = "Foo";
string fileContent = "Bar";
var action = ScheduledActionService.Find(fileTitle);
if (action == null)
{
// shouldn't be null if it was already added from the app itself.
// should get the date the user actually wants the alarm to go off.
DateTime date = DateTime.Now.AddSeconds(30);
action = new Reminder(fileTitle) { Title = fileTitle, Content = fileContent, BeginTime = date };
}
else if (action.IsScheduled == false)
{
ScheduledActionService.Remove(fileTitle);
// most likely fired today, add two days to the begin time.
// best to also add some logic if BeginTime.Date == Today
action.BeginTime = action.BeginTime.AddDays(2);
}
ScheduledActionService.Add(action);