Windows Phone 7的闹钟不能按预定时间响起

3
我正在创建一个用于Windows Phone OS 7.1的应用程序,以了解这个平台。在创建闹钟应用程序时,我遇到了一个奇怪的错误:当我使用ScheduledActionService.Add(myAlarm)设置闹钟时,闹钟永远不会在选择的时间响起。我将beginTime设置为现在+10秒,然后等待了2分钟,但没有成功。然而,当我在运行时添加另一个闹钟,在最后一个闹钟的选择时间之后,最后一个闹钟就会响起。
下面是我创建闹钟函数的代码。我已经进行了一些搜索,但没有找到解决方案。
        private void createAlarm(double time, string message)
    {
        var myAlarm = new Alarm(System.Guid.NewGuid().ToString())
        {
            Content = message,
            BeginTime = DateTime.Now.AddSeconds(time),
            ExpirationTime = DateTime.Now.AddSeconds(time + 10.0)
        };

        myAlarm.Sound = new Uri("/Sounds/02 Ha Trang.mp3", UriKind.Relative);
        myAlarm.RecurrenceType = RecurrenceInterval.None;

        ScheduledActionService.Add(myAlarm);
    }

通过调试,我发现当我在第一个闹钟的开始时间之后添加另一个闹钟时,当程序执行“ScheduledActionService.Add(myAlarm);”这一行时,第一个闹钟将会触发。 - user2006147
我尝试了完全相同的代码,警报在应该响起的确切时间响起了!当然,我注释掉了声音部分,因为我没有那个文件。 - Saurabh
@Saurabh,可以问一下您使用的Visual Studio版本、SDK和模拟器吗?我下载了带有VS Express的Windows Phone SDK 7.1。可能是因为我的系统... - user2006147
我正在使用Visual Studio 2010专业版,配合Windows Phone 7.1.1 SDK,其中包括Tango Refresh版本!请使用标准模拟器。 - Saurabh
让我们知道进展如何! :) - Saurabh
显示剩余3条评论
1个回答

1
这是一个已知的问题。闹钟和提醒的准确度为30秒。有时您可能会得到准确的结果,但总体来说,频繁的闹钟或提醒不可靠。缺乏准确性可能是为了保持资源消耗低。(请记住,闹钟在后台工作。)第一个闹钟在设置第二个闹钟时触发,因为系统突然“意识到”闹钟已经过期。最好将它们分开至少一分钟。

另一方面,如果您真的需要以非常小的间隔响铃,您将需要使用更多“前台”的东西,如计时器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接