4

我正在编写一个应用程序,用户可以在其中配置警报/警报。在这一点上,我已经完成了一切工作。我正在使用

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);

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

有没有办法在闹钟中的闹钟上获得光标或类似的东西?这将帮助我遍历它们并删除我想要的那些。

任何帮助将不胜感激,在此先感谢。

4

2 回答 2

2

正如这里回答的那样:没有支持的 API。

官方文档

如果指定了一天中的某个时间,并且 EXTRA_SKIP_UI 为真,并且警报没有重复,则实现应在解除此警报后将其删除。

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

如果存在与所有参数匹配的相同警报,则实现可以重新使用它而不是创建新警报

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

于 2014-08-21T15:51:33.403 回答
1

cancel(...)从调用方法AlarmManager,使用与PendingIntent设置警报相同的方法。例子:

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

this.getAlarmManager().cancel(mAlarmPendingIntent);

this指您要取消警报的那个Activity或那个Service

于 2013-06-08T12:12:23.573 回答