在Android中,如果我使用隐式意图从应用程序发送意图,并且有两个服务具有匹配的意图过滤器,哪个服务将被调用?Android多服务匹配意图
我知道的活动,用户将被要求通过弹出窗口的选择。 Android如何在服务中做出决定?
谢谢。
在Android中,如果我使用隐式意图从应用程序发送意图,并且有两个服务具有匹配的意图过滤器,哪个服务将被调用?Android多服务匹配意图
我知道的活动,用户将被要求通过弹出窗口的选择。 Android如何在服务中做出决定?
谢谢。
报价myself:
另外,如果有要求,支持安装在设备上的两个(或更多)的服务发生了什么相同的
<intent-filter>
,但有不同的包名称?您可能会认为这会在安装时失败,就像使用重复权限的提供商那样。唉,事实并非如此。相反,再一次,“赢”的第一个。所以,如果我们有
BadService
和GoodService
,既响应相同<intent-filter>
,和客户端应用程序试图通过明确意图匹配的是<intent-filter>
,它实际上可能与BadService
沟通,简单地传达给GoodService
因为BadService
安装第一。用户无视这一点。
这个故事的道德:不要使用隐含Intents
与服务。
他们会考虑优先级:
<intent-filter android:icon="drawable resource"
android:label="string resource"
android:priority="integer" >
. . .
</intent-filter>
那么基本上它的安装顺序是? – Jake
这与服务有关,但现在我也很好奇Android中是否还有其他类似的情况。你知道其他人吗? – Jake
@Jake:实际上,我应该链接到[稍后的博客文章](http://commonsware.com/blog/2013/11/07/troubling-tale-android-priority.html)。第一个决胜者是'android:priority',尽管这是没有记录的服务。安装顺序是第二个决胜盘。在这方面,服务有点像有序的广播,第一个接收者总是中止广播。 – CommonsWare