我已使用警报管理器来安排通知,但如果使用了日历时间,则无法正常工作



这是我在单击设置的闹钟按钮时使用的代码

alarmOn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getHour());
calendar.set(Calendar.MINUTE,timePicker.getMinute());

int hourString = timePicker.getHour();
int minuteString = timePicker.getMinute();

//intent.putExtra("extra","alarm_on");
setAlarmTxt("Alarm set to "+ hourString+":"+minuteString);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
//alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),0,pendingIntent);
// sendBroadcast(intent);
}
});

当我使用此代码时,它正在工作...

alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealti
me(),pendingIntent);

使用RTC_WAKEUP 使用系统当前时间,使用 ELAPSED_REALTIME_WAKEUP 指定自设备启动以来经过的时间间隔内的时间。

也就是说,要么

alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealti
me(),pendingIntent);

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);

有关详细信息,请参阅此处

最新更新