我对Android开发相当陌生,并且开发的应用程序依赖于在通知中添加一些是/否问题。我将使用四个PendingIntent'
我正在寻找的是告诉听力服务给出答案的最佳方式,而无需为他们定义额外的操作。我不想用一堆特定的意图过滤器来丢弃我的清单。
显然,在意图上设置附加功能将不会起作用 - 这仍然会使框架将它们看作几乎相同的意图。
为我提供我正在寻找的功能的解决方案是使用
intent.setData(Uri.parse("answer://yes"));
和
intent.setData(Uri.parse("answer://no"));
但我不认为这是意图数据的意思。
我想知道的是,如果有人知道更好的解决方案,或者可以提供赞成或反对我目前的方法的任何论据。
答案 0 :(得分:1)
显然,在意图上设置附加功能将不会起作用 - 这仍然会使框架将它们看作几乎相同的意图。
如果对PendingIntent
工厂方法调用的第二个参数使用唯一整数,它将起作用。您表明这些触发"听取服务",因此我假设您在getService()
上使用PendingIntent
作为工厂方法。
另外,我建议您从<intent-filter>
完全删除<service>
,并使用额外内容加上上面提到的唯一PendingIntent
标识符。如果您坚持使用<intent-filter>
,请将服务标记为未导出(android:exported="false"
)。 Exported services relying upon implicit Intent
s are at risk of being spoofed,这就是L Developer Preview不再允许Intent
隐式bindService()
的原因。