如何为两个独立的时基设置AlarmManager

时间:2014-02-15 10:07:09

标签: service time alarmmanager android-pendingintent

我正在开发一款可触发未来活动的应用。我设置AlarmManager来实现这一目标。代码是通用的:

Intent alarmIntent = new Intent(this, MyService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, time, pintent);

我想看看如何为AlarmManager设置多个未来事件。未来事件的时间都是独立的,有些可能是重复的,有些可能是一次性的。

任何机构都有此功能的经验?你介意在这里分享。

2 个答案:

答案 0 :(得分:0)

您需要确保传递给PendingIntent的{​​{1}}对每个事件都是唯一的。为了使AlarmManager独一无二,你有一些选择:

  • PendingIntent
  • 的调用中使用唯一的requestCode参数
  • 在传递给PendingIntent.getService()
  • Intent中使用唯一的操作
  • 使用传递给PendingIntent.getService()
  • Intent中的唯一数据

注意:在传递给PendingIntent.getService() Intent中使用不同的EXTRAS不会使PendingIntent.getService()唯一!

答案 1 :(得分:0)

感谢大卫。

我通过使用唯一的requestCode实现了这一目标。