【问题标题】:How to trigger the alarm multiple times on same day?如何在同一天多次触发警报?
【发布时间】:2016-08-26 10:14:37
【问题描述】:
例如,第一个警报在上午 10:00 触发,第二个警报在上午 11:15 触发,第三个警报在上午 11.45 触发.... 就像这样,每个实例之间没有任何共同点我需要多次触发警报。
如果我有共同差异,则可以使用重复功能,但在需要触发它的时间之间没有共同差异。那么,我怎样才能多次触发警报呢?
【问题讨论】:
标签:
android
alarmmanager
android-pendingintent
android-alarms
【解决方案1】:
You can set multiple alarm
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.HOUR_OF_DAY, HOUR_1);
calendar1.set(Calendar.MINUTE, MINUTES);
calendar1.set(Calendar.SECOND, SEC);
Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.HOUR_OF_DAY, HOUR_2);
calendar2.set(Calendar.MINUTE, MINUTES);
calendar2.set(Calendar.SECOND, SEC);
Calendar calendar3 = Calendar.getInstance();
calendar3.set(Calendar.HOUR_OF_DAY, HOUR_3);
calendar3.set(Calendar.MINUTE, MINUTES);
calendar3.set(Calendar.SECOND, SEC);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), ALARM_INTERVAL , pendingIntent1);//here interval is 24*60*60*1000
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), ALARM_INTERVAL , pendingIntent2);//24*60*60*1000
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar3.getTimeInMillis(), ALARM_INTERVAL , pendingIntent3);//24*60*60*1000
}
【解决方案2】:
来自这个链接 "http://www.satyakomatineni.com/item/3503" , ArrayList<Calendar>calenderList=new ArrayList<Calendar();
calender=Calendar.getInstance(TimeZone.getDefault(),Locale.getDefault());calender.set(Calendar.DATE,resultDay);
日历.set(日历.MONTH,8);
calender.set(Calendar.YEAR,2016);calender.set(Calendar.HOUR_OF_DAY,14);calender.set(Calendar.MINUTE,30);calender.set(Calendar.SECOND,10);
for(int n=0;n<calenderList.size();n++)
PendingIntent pendingIntent = PendingIntent.getBroadcast(
Intent intent = new Intent(TvActivity.this,TVAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(),n, intent,PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setExact(AlarmManager.RTC_WAKEUP,calenderList.get(n).getTimeInMillis(), pendingIntent);