intent的投递,有两种方式:
- 显式的设定目标组件的component名称。不过有时开发者不知道其他应用的component名称。显式方式常用于自己应用内部的消息传递,比如应用中一个activity启动一个相关的service或者启动一个姊妹activity;
- 隐式intent,component名称为空的情况。这种方式往往用于激活其他应用中的组件。
android投递一个显式的intent,只需找到对应名称的组件即可。
隐式的intent需要用到不同的策略。android需要找到处理这个intent的最合适组件(集合)。要通过intent filter,比较intent对象和组件关联结构。filter根据组件的能力决定他们能处理哪些intent。android系统打开合适的组件处理相应的隐式intent。如果组件不包含任何intent filter,那只能接收显式的intent。带filter的组件既可接收隐式intent也可接收显式的。