我很长时间都在寻找这个要求而找不到任何东西。所以我正在寻求你们的帮助。
我需要在特定的日期范围内设置闹钟管理器。我的意思是2016年9月28日至2016年9月30日,具体时间为13:00。
目前我可以设定特定日期。但不是日期范围。我现在的情况如下。
AlarmManager objAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2016);
calendar.set(Calendar.MONTH, 8);
calendar.set(Calendar.DAY_OF_MONTH, 28);
calendar.set(Calendar.HOUR_OF_DAY, 13);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
Intent alamShowIntent = new Intent(this,AlarmActivity.class);
PendingIntent alarmPendingIntent = PendingIntent.getActivity(this, 0,alamShowIntent,0 );
objAlarmManager.set(AlarmManager.RTC_WAKEUP,objCalendar.getTimeInMillis(), alarmPendingIntent);
请你在这方面帮助我。
出现的一个想法是找到日期范围之间的差值,并在特定时间内重复闹钟数天。这是正确的做法吗?
此致 沙拉斯
答案 0 :(得分:0)
此方法要求您不使用重复警报,例如setRepeating()
。但是,如果您正在为Android 6.0+开发,这很方便,因为重复警报不会在打盹模式下触发。
答案 1 :(得分:0)
在设置新警报时,无法通过警报提供警报到期。
我建议把你的警报有效期限告上意图,即alamShowIntent&在所需时间内使用setRepeating()
警报。在每个报警事件中,检查结束日期应该大于报警发出的时间。如果它是那么你的任务&如果没有,则用相同的PendingIntent取消警报。