Android闹钟 - 以编程方式删除闹钟

时间:2013-06-08 12:03:01

标签: android alarmmanager

我正在编写一个用户可以配置警报/警报的应用程序。在这一点上,我有一切工作期待一个。我正在使用

发出警报
Intent alarmIntent = new Intent(AlarmClock.ACTION_SET_ALARM);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtra(AlarmClock.EXTRA_MESSAGE, "Some message!");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, 1);
alarmIntent.putExtra(AlarmClock.EXTRA_HOUR, calendar.get(Calendar.HOUR_OF_DAY));
alarmIntent.putExtra(AlarmClock.EXTRA_MINUTES, calendar.get(Calendar.MINUTE));
alarmIntent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
context.startActivity(alarmIntent);

我想在用户使用“关闭”按钮解除后删除此警报。我可以看到警报仍然存在,我通过我的应用程序使用上面的代码设置了闹钟。

是否有某种方法可以在闹钟中的闹钟上获得光标或类似内容?这将帮助我迭代它们并删除我想要的那些。

任何帮助将不胜感激,提前致谢。

2 个答案:

答案 0 :(得分:3)

来自cancel(...)

调用方法AlarmManager,使用您用于设置闹钟的相同PendingIntent。例如:

mAlarmPendingIntent = PendingIntent.getActivity(this, requestCode, intent, flags);

this.getAlarmManager().cancel(mAlarmPendingIntent);

this指的是取消闹钟的ActivityService

答案 1 :(得分:2)

回答here时:没有支持的API。

Official documentation

  

如果指定了一天的时间,并且EXTRA_SKIP_UI为真,那么   警报不重复,执行应删除此警报   在它被解雇之后。

但是不同的制造商实施他们自己的闹钟,我不确定是否有人支持这个。 我已经在JB模拟器上尝试过它,看起来它不起作用。也许,在KitKat上? 只有这一个在JB上是可以的:

  

如果存在匹配所有参数的相同警报,则执行   可以重复使用它而不是创建一个新的

所以,也许,更好的解决方案是使用你自己的闹钟,用AlarmManager创建或警告用户他必须手动删除警报(使其更明显 - 不使用AlarmClock.EXTRA_SKIP_UI)。