我有一个时间选择器对话框,我正在选择闹钟的时间。我正在设置我希望闹钟响起的那一天。如果我今天(星期六)指定“星期几”,则闹钟会在时间选择器上指定的正确时间内消失。如果我设置让我们说星期一,警报一旦设置就会立即响起。
如何,我可以安排闹钟在一周的某一天发生,而不是今天?
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);
看来,如果我设定今天的那一天,或者根本没有,那就很有效。为什么它不会在当天不工作,我怎样才能让它工作?我转向SO因为我没有得到谷歌的任何帮助。
我也尝试了ca.set(Calendar.DAY_OF_WEEK,2);
谢谢
答案 0 :(得分:1)
问题是您的日历默认设置为今天的闹钟日期,指定的时间小于执行闹钟的时间。时间已经过去了,即使已经晚了,它也会告诉你。 例如,您在晚上7:00运行代码,但日历的时间设置为下午6:50。如果您希望从明天开始触发警报,请将其添加到您的日历配置中:
calendar.add(Calendar. DATE, 1);
另外,请确保在清单上定义广播接收器,以便在应用未运行时发出警报。