小编Smu*_*ler的帖子

Android如何取消AlarmManager.setAlarmClock()

API 21中有一个新的AlarmManager.setAlarmClock(...)方法,它设置一个新的警报并显示一个状态栏警报图标.

我这样使用它:

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(ALARM_ALERT_ACTION);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
am.setAlarmClock(new AlarmManager.AlarmClockInfo(time, sender), sender);
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何取消此警报,因为此代码不起作用:

am.cancel(PendingIntent.getBroadcast(context, 0, new Intent(ALARM_ALERT_ACTION), PendingIntent.FLAG_CANCEL_CURRENT));
Run Code Online (Sandbox Code Playgroud)

警报本身被取消(我的BroadcastReceiver的onReceive未被调用)但状态栏警报图标仍然显示,并且AlarmManager.getNextAlarmClock()也返回此警报.

android alarmmanager android-alarms android-5.0-lollipop

7
推荐指数
1
解决办法
4600
查看次数