应用程序重启后,如何取消特定的警报管理器?

时间:2016-01-16 23:33:47

标签: android

我正在创建一个应用程序,在收到某个数字的文本后,使用AlarmManager启动重复警报。 AlarmReciever播放闹钟声30秒,然后闹钟每五分钟重复一次。我希望在用户关闭并重新启动应用程序时取消AlarmManager,但我必须使用相同的alarmIntent实例取消它。

1 个答案:

答案 0 :(得分:1)

  

我必须使用相同的alarmIntent实例来取消它。

不,您必须使用等效的PendingIntent取消它。 “等价”,我的意思是:

  • 这是相同的操作(例如,活动,服务,广播)
  • 它具有相同的请求代码(getActivity()等方法的第二个参数)
  • 它具有等效的Intent

“等价Intent”,我的意思是所有路由信息都是相同的(组件,操作,数据,MIME类型,类别)。额外功能并不重要。

您需要在持久数据存储(例如,文件)中保留足够的信息,以便能够创建等效的PendingIntent以传递到cancel()上的AlarmManager