1

在我的应用程序中,我使用提醒服务向用户提供提醒,提示他们做某事。我正在使用以下代码来执行此操作:

if (date > DateTime.Now)
{
    Reminder r = new Reminder(fileTitle);
    r.Title = fileTitle;
    r.Content = fileContent;
    r.BeginTime = date;

    ScheduledActionService.Add(r);
}

然而,这只发生一次。我尝试将 设置ExpirationTime为某个值,但这每天都会重复提醒。

有谁知道如何设置每隔一天触发一次的提醒?

(此外,最好知道如何为一周中的某些日子设置提醒,但每隔一天的部分是目前的主要问题。)

4

2 回答 2

2

对于您的情况,我建议存储警报响起的时间。您可以将此信息存储在应用程序设置或文件中。当用户第一次要求安排提醒时,继续你正在做的事情,然后也节省闹钟的时间。您可能还想询问用户何时希望警报停止并保存。

为确保警报每隔一天响起,您需要在应用程序中添加一个后台代理。在代理中有一个 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);
于 2013-09-06T15:38:10.570 回答
0

您需要将 设置RecurrenceType为一个RecurrenceInterval值。对您来说不幸的是,目前没有任何可用于自定义时间表的内容(即每隔一天)。

另一个呃!微软在这里真的。

于 2013-09-06T13:58:27.333 回答