在我的应用程序中,我使用多个警报管理器,并且它们都工作正常。现在,我的应用程序还需要两件事:
为每个alarmManager设置一个ID,以便我可以在广播接收器中识别此警报
使用此ID稍后取消警报
我设置警报的代码
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.HOUR_OF_DAY, h1);
cal1.set(Calendar.MINUTE, m1+30);
cal1.set(Calendar.SECOND, 00);
Intent intent = new Intent(context, YourBroadCastReceiver.class);
// Add Some unique ID here for e.g "SFSF43535"
PendingIntent openAlarm = PendingIntent.getBroadcast(context, 0, intent, 0);
// Add Some unique ID here for e.g "SFSf87sfs"
PendingIntent CloseAlarm = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, openAlarm);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
cal1.getTimeInMillis(), DateUtils.DAY_IN_MILLIS, CloseAlarm);
YourBroadCastReceiver(在此我需要该唯一ID)
@Override
public void onReceive(Context context, Intent intent) {
// Get Unique id here to find some data related to that alram
}
您可以向Intent
其中添加其他功能,这些功能将被传递:
Intent intent = new Intent(context, YourBroadCastReceiver.class);
intent.putExtra("id", "somerandomID");
然后将多余的钱退回接收器:
public void onReceive(Context context, Intent intent) {
String id = intent.getStringExtra("id");
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句