特定日历设置时间后闹钟管理器不会关闭
问题描述:
我想在用户单击某个按钮后的特定时间(现在,周日上午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);
WOW THANK YOU!我看过的例子在设置日期编号方面是错误的。 – rainingdx 2014-10-12 07:57:37
是的,日历类的值很奇怪。例如,一周的天数以1为基础,但以月为基础。如果可能的话,最好使用类常量。 – 2014-10-12 08:00:24
顺便说一句,当你调用'Calendar.getInstance()'时,它返回一个已经设置好当前时间的实例。只是FYI。 – 2014-10-12 08:07:28