【问题标题】:Android Alarm Clock - Remove alarms programmaticallyAndroid 闹钟 - 以编程方式删除闹钟
【发布时间】:2014-08-21 23:51:33
【问题描述】:

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

发出警报
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);

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

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

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

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    正如 here 的回答:没有支持的 API。

    Official documentation 这么说

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      this 指的是您从中取消警报的ActivityService

      【讨论】:

      • 感谢您的帮助。但是,我想您需要再次解决我的问题。我不是要求从 AlarmManager 中删除警报,我想删除在闹钟中设置的警报。我说清楚了吗?
      • 我不明白你在说什么......根据你的问题,这就是答案。它还删除了在闹钟中设置的闹钟。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 2012-07-21
      • 2011-08-21
      相关资源
      最近更新 更多