我有一个时间选择器对话框,我在其中选择时间来征备警报。然后,我要设置希望闹钟发出的一天。如果我今天(星期六)"一周中的一天"指定,则在计时器上指定的正确时间中响起警报。如果我设置的话,星期一,一旦我设置了警报立即发出。
如何安排一个警报以在一周的某一天发出闹钟?
java
timepickerdialog = new TimePickerDialog(AddAlarmActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
Calendar ca = Calendar.getInstance();
ca.set(Calendar.HOUR_OF_DAY,hourOfDay);
ca.set(Calendar.MINUTE,minute);
ca.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
ca.set(Calendar.SECOND, 0);
ca.set(Calendar.MILLISECOND, 0);
AlarmManager alarmManager;
alarmManager = (AlarmManager) AddAlarmActivity.this.getSystemService(ALARM_SERVICE);
Intent intent;
intent = new Intent(AddAlarmActivity.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(AddAlarmActivity.this, 0, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, ca.getTimeInMillis(), 1000*60*60*24, pendingIntent);
看来,如果我设置今天的一天或根本没有的一天,它效果很好。为什么它不工作一天,这不是当前的一天,我该如何工作?我之所以要这样做,是因为我没有在Google方面得到任何帮助。
我也尝试了ca.set(calendar.day_of_week,2);
谢谢
问题是,您的日历默认为"默认情况下"的警报日期,而指定的时间少于您执行警报的时间。时间已经过去了,即使迟到了,也可以通知您。 示例您在晚上7:00运行代码,但日历的时间设置为6:50 pm。如果您希望明天从明天开始触发警报,请将其添加到您的日历配置:
calendar.add(Calendar. DATE, 1);
还要确保您在清单上定义广播员,以便当应用程序不运行时警报起作用。