【问题标题】:Windows Phone 8 Reminder with a custom recurrence interval具有自定义重复间隔的 Windows Phone 8 提醒
【发布时间】:2014-01-16 22:06:59
【问题描述】:

有没有办法让Reminder 在自定义的重复间隔上工作,比如每 4 小时一次?因为现在我知道的唯一选择是将RecurrenceType 设置为RecurrenceInterval,它只支持每日、每周、每月和每年的重复。

【问题讨论】:

  • 我不相信这是可能的。我能找到的一切都在说同样的事情——必须是每天、每周、每月或每年。您可以尝试设置一堆Reminders。这很古怪,但我能想到的最好的。
  • 是的,我也发现了。是的,我可能会设置一堆提醒,这是一个 hack,但必须以某种方式完成。谢谢。

标签: c# windows-phone-8 windows-phone


【解决方案1】:

您可以通过这种方式在每 4 小时内重复提醒特定时间:

    private int _intervalHours;
    public int IntervalHours
    {
        get
        {
            return _intervalHours;
        }
        set
        {
            _intervalHours = value;
            RaisePropertyChanged("IntervalHours");
        }
    }

    private int _frequency;
    public int Frequency
    {
        get
        {
            return _frequency;
        }
        set
        {
            _frequency = value;
            RaisePropertyChanged("Frequency");
        }
    }
      //RecurrenceInterval.None is used as a new reminder will be created for every 4  hours in your case
      RecurrenceInterval recurrence = RecurrenceInterval.None;

      //inserting staring reminder
      name = System.Guid.NewGuid().ToString();
      reminder = new Reminder(name);
      reminder.RecurrenceType = recurrence;
      reminder.Title = title;
      reminder.Content = content;
      reminder.BeginTime = beginTime;
      reminder.ExpirationTime = expirationTime;
      reminder.RecurrenceType = recurrence;
      reminder.NavigationUri = navigationUri;
      ScheduledActionService.Add(reminder);

       //inserting reminder for IntervalHours, let say at interval of 4 hours and will added after each IntervalHours upto Frequency(number of time)
       if (IntervalHours > 0)
        {
            //i is started from 1 as 1 reminder added above
            for (int i = 1; i < Frequency; i++)
            {                    
                name = System.Guid.NewGuid().ToString();
                reminder = new Reminder(name);
                reminder.RecurrenceType = recurrence;
                reminder.Title = title;
                reminder.Content = content;
                reminder.BeginTime = beginTime.AddHours(IntervalHours*i);
                reminder.ExpirationTime = expirationTime.AddHours(IntervalHours*i);
                reminder.RecurrenceType = recurrence;
                reminder.NavigationUri = navigationUri;
                ScheduledActionService.Add(reminder);
            }
        }

希望这会有所帮助。

【讨论】:

  • 我就是这么做的,请查看我对这个问题的评论。但我会接受你的回答,因为它是正确的。
【解决方案2】:

目前在 WP8 中不支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多