我有三个警报管理器,可以在当天的不同时间创建三个警报。这些警报是主要活动的oncreate方法。我希望仅在应用程序第一次启动时设置这些警报。但是因为它们是主要活动的oncreate方法。每次重新创建主要活动时都会重新创建它们。我该如何解决这个问题?此外,即使我的主要活动未激活或未成为焦点,我也希望设置警报。
此外,我希望每个警报在特定时间窗口内的不同时间每天重复。 setRepeatingAlarm方法没有给我这种灵活性。关于如何实现这一目标的任何想法?
Intent intent1 = new Intent(this, ReminderAlarmReceiver.class);
intent1.putExtra("alarm_message", "Alarm!");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent1, PendingIntent.FLAG_NO_CREATE);
Intent intent2 = new Intent(this, ReminderAlarmReceiver.class);
intent2.putExtra("alarm_message", "Alarm!");
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(this, 2, intent2, PendingIntent.FLAG_NO_CREATE);
Intent intent3 = new Intent(this, EODAlarmReceiver.class);
intent3.putExtra("alarm_message", "Alarm!");
PendingIntent pendingIntent3 = PendingIntent.getBroadcast(this, 3, intent3, 0);
// Get the AlarmManager service
AlarmManager alarmMgr1 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmMgr1.set(AlarmManager.RTC_WAKEUP, cal0.getTimeInMillis(), pendingIntent);
AlarmManager alarmMgr2 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmMgr2.set(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), pendingIntent2);
AlarmManager alarmMgr3 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmMgr3.set(AlarmManager.RTC_WAKEUP, cal4.getTimeInMillis(), pendingIntent3);