2011-08-28 52 views
0

因此,我已经编写了用于让AlarmManager在一周中的指定日期触发的代码。麻烦的是,我无法坐下来等待明天弹出通知,看看我的代码是否正确!有人可以看看,看看我写的是否有意义吗?将闹钟管理器设置为在一周中的某个特定日期触发的代码(android)

(天是一个int(1-7代表周日到周六))

if(calendar.get(Calendar.DAY_OF_WEEK) != day) 
    { 
     if(day > calendar.get(Calendar.DAY_OF_WEEK)) 
     { 
      calendar.add(Calendar.DAY_OF_MONTH, day - calendar.get(Calendar.DAY_OF_WEEK)); 
     } 

     if(day < calendar.get(Calendar.DAY_OF_WEEK)) 
     { 
      calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
      if(day > 1) 
      { 
       calendar.add(Calendar.DAY_OF_MONTH, 7 - (calendar.get(Calendar.DAY_OF_WEEK) - day)); 
      } 
     } 
    } 

回答

1

为您的代码编写单元测试,并使用一周中的不同日期对其进行测试。然后你可以确定你正在计算报警火灾时间。 AlarmManager本身可能存在任何其他问题,这是您无法控制的。

+0

你可以进入更多的细节?我想我可以打印日历类的一些属性,可以给我答案? –

+0

我做到了,看起来像我的代码工作得很好。感谢指针! –

+0

我在考虑更多自动化[JUnit](http://junit.org/)测试,您可以在其中比较期望值与实际输出。如果您真的测试了足够多的输入以涵盖所有可能的情况,那么使用日志记录进行手动测试也可以。 –

0

如何更改日期/时间在手机上,使之认为这是报警的一天吗?

相关问题