Android取消所有闹钟设置

时间:2010-05-30 10:53:56

标签: android android-alarms

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

1 个答案:

答案 0 :(得分:2)

执行取消的代码不必是警报的发起者。您的代码通过识别创建它的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);

这可能不适用于你的情况,但如果你没有尝试过这种方法,那么它可能是一个好的开始!