2013-01-24 47 views
3

我正在为Windows Phone OS 7.1创建一个应用程序来了解此平台。当创建闹钟应用程序时,我遇到了这个奇怪的错误:当我使用ScheduledActionService.Add(myAlarm)设置闹钟时,闹钟在选定的时间永远不会关闭。我设置了beginTime = now + 10秒,然后我等了2分钟,没有运气。但是,当我在运行时添加另一个警报时,在上次警报的选定时间后,最后一个警报将熄灭。Windows Phone 7闹钟在预定时间没有关闭

下面是我的createAlarm函数的代码。我做了一些搜索,但没有找到解决办法。

 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); 
    } 
+0

通过调试,我发现当我在第一次报警的开始时间后添加另一个报警时,那么当程序执行“ScheduledActionService.Add(myAlarm);”时会触发第一个报警。 – user2006147

+0

我尝试了这个完全相同的代码,并且报警在确切的时间发生了!当然,我评论了声音部分因为我没有那个文件。 – Saurabh

+0

@Saurabh我可以问你使用的Visual Studio,SDK和模拟器的版本吗?我用VS在其中下载了窗口电话SDK 7.1。这可能是因为我的系统... – user2006147

回答

1

这是一个已知的问题。警报以30秒的精度熄灭。提醒的情况也是如此。有时您可能会得到准确的结果,但总体而言,频繁发生警报或提醒并不可靠。缺乏准确性可能会降低资源消耗。 (请记住,警报在后台工作。)当第二个警报设置时,第一个警报被触发,因为系统突然“意识到”警报已经过期。将这些分开至少一分钟是一个好习惯。另一方面,如果你真的需要以非常小的间隔发出嘟嘟声,那么你将不得不使用像定时器那样更“前台”的东西。

相关问题