1

嗨,我正在为 windows mobile 创建一个简单的闹钟,但我的闹钟类没有按预期触发。这是我的代码:

    public void AddAlaram()
    {
        Alarm alarm = new Alarm("Wakeup");
        alarm.Content = ("Time to wake up!");
        alarm.BeginTime = DateTime.Now.AddSeconds(5);
        alarm.ExpirationTime = DateTime.Now.AddHours(alarmHours);
        alarm.Sound= new Uri("/Resources/GoodMorning.wav",UriKind.Relative);
        ScheduledActionService.Add(alarm);
    }

一般来说,我对编程有点陌生。我的布局是我制作了一个列表框,其中包含从 1 到 24 的可滚动项目。然后我设置了闹钟,以便

    int alarmHours = 0;

        if(_1.IsSelected)
        {
            alarmHours = 1;
        }

依此类推(我知道冗长且不必要,但我不知道如何优化该atm)。

所以我的理解是,如果选择了例如 6,那么警报到期时间应该是现在的时间 + 6 小时。但是当我运行模拟器时,它会在几秒钟内触发。

哦,这是代码的下一行,它是我制作的弹出窗口的计时器,当您单击添加警报按钮时会出现。我觉得这是把它搞砸了,但我不太明白怎么做?

        AlarmPopup.IsOpen = true;

        System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();

        timer.Interval = new TimeSpan(0, 0, 0, 3, 0);

        timer.Tick += tick;

        timer.Start();

任何帮助,将不胜感激。谢谢!

4

1 回答 1

1

您已将闹钟设置为 5 秒后响起:

alarm.BeginTime = DateTime.Now.AddSeconds(5);

BeginTime 是警报触发的时间。ExpirationTime 是警报到期的时间。这对于重复警报很有用,例如,如果我希望警报每天响起但仅在接下来的 5 天内响起,那么我应该将 ExpirationTime 设置为从现在起的 5 天。

于 2013-11-14T23:58:46.087 回答