我已安排每天上午10点触发警报。
我在星期一上午12点设置此闹钟。
如果闹钟时间过去,则会立即触发闹钟。
但是根据我的要求,我不想立即触发。我可以在第二天上午10点触发。
以下是我当前设置闹钟的代码:
Calendar activeModeTime = Calendar.getInstance();
// activeModeTime.setTimeZone(TimeZone.getTimeZone(Constants.TIME_ZONE));
activeModeTime.set(Calendar.HOUR_OF_DAY,
mSharedPrefManager.getActiveStartHourPref());
activeModeTime.set(Calendar.MINUTE,
Constants.DEFAULT_ACTIVE_START_MINUTE);
activeModeTime.set(Calendar.SECOND,
Constants.ALL_START_END_DEFAULT_SECOND);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
activeModeTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
getActiveModeAlarmPendingIntent());
我该如何实现这一目标。
答案 0 :(得分:5)
检查您设置的时间是否已经过去,如果是,则在触发时间内添加24小时。
if(activeModeTime < System.currentTimeMillis()){
activeModeTime += AlarmManager.INTERVAL_DAY;
}
答案 1 :(得分:0)
写入间隔而不是REPEATING_INTERVAL。 对于上午10 AM的示例,您需要在下面的代码中编写AlarmManager.INTERVAL_DAY而不是REPEATING_INTERVAL。
if(Calendar.getInstance().getTimeInMillis()>=calendar.getTimeInMillis()){
timeInMillis = calendar.getTimeInMillis() + REPEATING_INTERVAL;
}else {
timeInMillis = calendar.getTimeInMillis();
}
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, timeInMillis,REPEATING_INTERVAL, pendingIntent);