如何以编程方式检查已经安排的警报?

时间:2015-02-23 10:27:50

标签: android broadcastreceiver alarmmanager repeatingalarm bootcompleted

我已使用以下代码设置闹钟,

mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                activeModeTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
                getActiveModeAlarmPendingIntent());

每次我的应用程序在主屏幕活动中启动时,我都会一次又一次地设置闹钟。

我知道一旦设备关机,所有预定的闹钟都会被取消。电源打开后,所有警报将再次安排。

但我不知道每次应用程序启动时如何检查已经安排的警报。

还请确认以下内容, 应用程序启动后一次又一次地重新设置将替换旧警报,如果时间已经过去将被触发。 如何通过以编程方式检查已安排的警报来避免这种多重警报设置?

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

使用PendingIntent.FLAG_NO_CREATE标志创建与PendingIntent一起使用的等效setRepeating()

boolean isAlarmActive = (pendingIntent != null);
if (isAlarmActive) {
  Log.d("TAG", "Alarm is already active");
}

在使用PendingIntent.FLAG_NO_CREATE时,如果描述的PendingIntent尚未存在,则只返回null