【发布时间】:2013-12-30 00:28:16
【问题描述】:
我有三个警报管理器在一天的不同时间创建三个警报。这些警报在 mainactivity 的 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);
【问题讨论】:
标签: android alarmmanager