Android AlarmManager:有没有办法让所有的警报设置?

我正在构build一个应用程序,为每周的每一天(在某个小时和分钟)设置2个闹钟,闹钟每周重复一周。

现在的重点是:如果用户更改了警报,我需要取消之前设置的警报。

有没有办法简单地取消我的应用程序设置的所有警报?

Solutions Collecting From Web of "Android AlarmManager:有没有办法让所有的警报设置?"

我想你可以看看 : AlarmManager.Cancel

并在该问题/答案: Android:获取与AlarmManager设置的所有PendingIntents

如上所述,您不能要求AlarmManager告诉您PendingIntent在其中。 但是我认为你可以使一些类似于你想取消的PendingIntent)。

如果您要取消之前的警报,那么在PendingIntent中,您的标志应该是PendingIntent.FLAG_CANCEL_CURRENT。 如果它已经被创build,将会阻止生成一个新的PendingIntent。 并确保在设置警报之前,取消相同的PendingIntent,然后设置你的闹钟。 你应该这样尝试:

AlarmManager 2AlarmsInWeekAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pendingIntent = PendingIntent.getService/getActivity(context, int, intent, PendingIntent.FLAG_CANCEL_CURRENT); 2AlarmsInWeekAlarmManager.cancel(pendingIntent); 

然后你可以使用set或setRepeating方法。 你的情况应该是

 2AlarmsInWeekAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, "timeInMillis", "repetitionTimeInMillis", pendingintent); 

这保证在设置一个警报之前将取消所有先前使用相同PendingIntent的警报。

希望你有这个!