警报经理在一周中的一天设置警报



我有一个时间选择器对话框,我在其中选择时间来征备警报。然后,我要设置希望闹钟发出的一天。如果我今天(星期六)"一周中的一天"指定,则在计时器上指定的正确时间中响起警报。如果我设置的话,星期一,一旦我设置了警报立即发出。

如何安排一个警报以在一周的某一天发出闹钟?

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);

还要确保您在清单上定义广播员,以便当应用程序不运行时警报起作用。

最新更新