在我的代码中,我创建了一个警报,如下所示:
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent("mypackage.START_MONITORING_SERVICE");
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
long timeForNextStart = System.currentTimeMillis() + elapsedTime;
am.set(AlarmManager.RTC_WAKEUP, timeForNextStart, pi);
要取消警报,我这样做:
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent("mypackage.START_MONITORING_SERVICE");
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
am.cancel(pendingIntent);
我的问题是这是否是取消所有具有相同意图的警报的正确方法。文档说:
删除任何具有匹配 Intent 的警报。任何类型的任何警报,其 Intent 与此匹配(由 filterEquals(Intent) 定义)都将被取消。
我不确定是什么定义了“匹配意图”。如果我使用上面的代码创建多个警报,然后如图所示执行取消,它会取消我创建的所有警报吗?