我正在制作一个事件应用程序,用户可以为他想要的事件设置提醒。 所以我使用alarmManager来创建警报。我想在我的主要活动中添加取消所有选项,以便我可以取消我的应用程序创建的所有警报。 以相同的意图取消警报的常用方法并不能真正帮助我将警报设置为与我想取消警报的活动不同的活动。 那么有没有办法取消我的应用程序创建的所有警报? 谢谢!
答案 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);
这可能不适用于你的情况,但如果你没有尝试过这种方法,那么它可能是一个好的开始!