在我的应用程序中,我正在使用提醒服务向用户提供提醒,这会提示他们执行某些操作。我使用以下代码来执行此操作:
if (date > DateTime.Now)
{
Reminder r = new Reminder(fileTitle);
r.Title = fileTitle;
r.Content = fileContent;
r.BeginTime = date;
ScheduledActionService.Add(r);
}
但是,这只会关闭一次。我尝试将ExpirationTime
设置为某个值,但这每天都会重复提醒。
有谁知道如何设置每隔一天触发一次提醒?
(此外,最好知道如何为一周中的某些日子设置提醒,但每隔一天的部分是目前的主要问题。
对于您的情况,我建议存储警报应该响起的时间。您可以将此信息存储在应用程序设置或文件中。当用户首次请求安排提醒时,请继续您正在执行的操作,然后还要节省警报的时间。您可能还希望询问用户何时希望停止警报并保存该警报。
为了确保警报每隔一天响起,您需要向应用程序添加后台代理。在代理中有一个 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);
将RecurrenceType
设置为RecurrenceInterval
值。不幸的是,目前没有可用于自定义时间表(即每隔一天)的内容。
又是一哑!真的Microsoft这里。