我安排多意图具体PendingIntents被发送到广播接收器。 每一个意图之间的区别是什么时候会被接收并额外的数据包含的时间。取消与AlarmManager
现在我需要允许用户取消特定的报警。据AlarmManager.cancel()的javadoc,它采用filterEquals方法比较意图:
http://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent)
现在的问题是,根据filterEquals,我所有的意图是相同的。方法检查“动作,数据,类型,类和类别”。
并且唯一的数据可能是意图额外捆绑或作为AlarmManager中的时间。 我试图改变任何这些参数 - 例如使用:
intent.setData(Uri.withAppendedPath(Uri.EMPTY, "some_unique_data"));
这将使每一个意图唯一根据filterEquals方法,但改变的数据,以这样的事情后,我的意图没有达到广播接收器了。
根据filterEquals,我可以更改哪些特定数据位以使每个意图唯一且仍然可以接收到我的简单BroadcastReceiver?
也许我可以用任何方式修改我的接收器?
有一个称为requestCode PendingIntent.getBroadcast方法内部的参数,但因为它的文档状态:“发件人requestCode私人请求码(当前未使用)。”。这是否意味着,该代码没有以任何方式使用,或者我可以将其指定为用于取消未决意图的唯一ID? – Kostas 2012-03-09 15:25:43
你能接受你的答案吗?这将从开放问题列表中删除此问题,并可能帮助其他人解决类似问题。谢谢。 – 2017-09-18 14:58:28