特定日历设置时间后闹钟管理器不会关闭

问题描述:

我想在用户单击某个按钮后的特定时间(现在,周日上午12点36分左右)启动新的意图。我已经看过所有的日历类教程,但似乎无法找到最新的错误。我测试了没有日历功能的代码,它工作正常。代码如下:特定日历设置时间后闹钟管理器不会关闭

public void myClickHandler(View view){ 
    switch (view.getId()){ 
    case R.id.button_start: 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.set(Calendar.DAY_OF_WEEK, 0); 
     calendar.set(Calendar.HOUR_OF_DAY, 0); 
     calendar.set(Calendar.MINUTE, 30); 
     calendar.set(Calendar.SECOND, 0); 
     calendar.set(Calendar.MILLISECOND, 0); 

     AlarmManager alrmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     Intent intent = new Intent(this, MyBroadcastReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
     alrmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
     break; 
    } 
} 

您正在设置错误的星期几。 Calendar.SUNDAY = 1,所以更改如下:

calendar.set(Calendar.DAY_OF_WEEK, 1); 

或者更好的是,使用类常量:

calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
+0

WOW THANK YOU!我看过的例子在设置日期编号方面是错误的。 – rainingdx 2014-10-12 07:57:37

+0

是的,日历类的值很奇怪。例如,一周的天数以1为基础,但以月为基础。如果可能的话,最好使用类常量。 – 2014-10-12 08:00:24

+0

顺便说一句,当你调用'Calendar.getInstance()'时,它返回一个已经设置好当前时间的实例。只是FYI。 – 2014-10-12 08:07:28