繁体   English   中英

设置多个警报时仅触发一个警报

[英]Only one alarm fired when multiple ones are set

我的目标是为eventsDb.getFavouriteEvents()每个事件触发一个警报,但每次仅触发一个。

我认为,这可能是由于设置PendingIntent.FLAG_UPDATE_CURRENT引起的,但是我需要此标志来发布具有意图的Extras。 有什么方法可以不设置此标志,而仍可以按意图发布Extras?

我将PendinIntents存储在一个Collection中( pendingIntents PendinIntents ),因为要在此Service类的onDestroy()中取消它们。

这是来自onCreate()代码:

for(Event event : eventsDB.getFavouriteEvents()) {
  Intent intent = new Intent(AlarmReciever.ONCOMING_EVENT);
  intent.putExtra(Event.TITLE, event.getTitle());

  PendingIntent pendingIntent = PendingIntent.getBroadcast(EventAlarmService.this, 0, intent, 
    Intent.FLAG_GRANT_READ_URI_PERMISSION | PendingIntent.FLAG_UPDATE_CURRENT);
  alarmManager.set(AlarmManager.RTC_WAKEUP, event.getTime(), pendingIntent);

  pendingIntents.add(pendingIntent);
}

感谢帮助!

如果它们共享相同的代码,则PendingIntent将在发送时被覆盖。 更改每个发送意图的代码应解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM