Android 取消所有闹钟设置

发布于 2024-09-03 15:46:32 字数 179 浏览 2 评论 0原文

我正在制作一个事件应用程序,用户可以为他想要的事件设置提醒。 所以我使用alarmManager来创建警报。我想在我的主要活动中添加取消所有选项,以便我可以取消应用程序创建的所有警报。 具有相同意图的取消警报的常用方法并没有真正帮助,因为我在与我想要取消警报的活动不同的活动上设置了警报。 那么有没有办法取消我的应用程序创建的所有警报? 谢谢!

I am making an event application and user can set a reminder for events he wants.
So i use the alarmManager to create alarms. I would like to put a cancel all option to my main activity so that i could cancel all the alarms created by my application.
The usual method for canceling the alarm with the same intent doesnt really help cause i set tha alarms on a different activity than the one I want to cancel them in.
So is there a way to cancel all the alarms created by my application?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

捂风挽笑 2024-09-10 15:46:32

执行取消的代码不必是警报的发起者。您的代码通过识别创建警报的 PendingIntent 来识别要取消的警报。您可以按如下方式“制造”原始 PendingIntent 的传真。 。 。

   String pname = this.getPackageName();

   // manufacture an appropriate context
   Context mycontext = null;
   try {
      mycontext = createPackageContext(pname,CONTEXT_IGNORE_SECURITY);
   } catch (NameNotFoundException e) {
      // handle exception here
      e.printStackTrace();
   }
   // and generate a pendingintent
   PendingIntent pi = PendingIntent.getService(mycontext,
                    0, new Intent(mycontext, myalarmreceiver.class), 0);
   // Now use alarmmanager to terminate the alarm
   AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
   am.cancel(pi);

这可能不适用于您的情况,但如果您还没有尝试过这种方法,这可能是一个很好的起点!

The code that executes the cancellation does not have to be the originator of the alarm. Your code identifies the alarm to cancel by identifying the PendingIntent that created it. You can 'manufacture' a facsimile of the original PendingIntent as follows . . .

   String pname = this.getPackageName();

   // manufacture an appropriate context
   Context mycontext = null;
   try {
      mycontext = createPackageContext(pname,CONTEXT_IGNORE_SECURITY);
   } catch (NameNotFoundException e) {
      // handle exception here
      e.printStackTrace();
   }
   // and generate a pendingintent
   PendingIntent pi = PendingIntent.getService(mycontext,
                    0, new Intent(mycontext, myalarmreceiver.class), 0);
   // Now use alarmmanager to terminate the alarm
   AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
   am.cancel(pi);

This may not work in your situation, but if you haven't tried this approach, it may be a good place to start!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文