区分通知操作发送的PendingIntents

时间:2014-09-17 11:06:50

标签: android android-intent android-notifications android-pendingintent

我对Android开发相当陌生,并且开发的应用程序依赖于在通知中添加一些是/否问题。我将使用四个PendingIntent'

  • 删除意图:记住问题被驳回
  • 内容意图:打开提供相同问题的活动
  • 意图行动1:回答是
  • 对行动2的意图:回答否

我正在寻找的是告诉听力服务给出答案的最佳方式,而无需为他们定义额外的操作。我不想用一堆特定的意图过滤器来丢弃我的清单。

显然,在意图上设置附加功能将不会起作用 - 这仍然会使框架将它们看作几乎相同的意图。

为我提供我正在寻找的功能的解决方案是使用

intent.setData(Uri.parse("answer://yes"));

intent.setData(Uri.parse("answer://no"));

但我不认为这是意图数据的意思。

我想知道的是,如果有人知道更好的解决方案,或者可以提供赞成或反对我目前的方法的任何论据。

1 个答案:

答案 0 :(得分:1)

  

显然,在意图上设置附加功能将不会起作用 - 这仍然会使框架将它们看作几乎相同的意图。

如果对PendingIntent工厂方法调用的第二个参数使用唯一整数,它将起作用。您表明这些触发"听取服务",因此我假设您在getService()上使用PendingIntent作为工厂方法。

另外,我建议您从<intent-filter>完全删除<service>,并使用额外内容加上上面提到的唯一PendingIntent标识符。如果您坚持使用<intent-filter>,请将服务标记为未导出(android:exported="false")。 Exported services relying upon implicit Intents are at risk of being spoofed,这就是L Developer Preview不再允许Intent隐式bindService()的原因。