【摘要】:隐式Intent不指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。例如,如需打开网页,则可以使用隐式Intent,请求另一具有此功能的应用打开指定的网页。图3-1描述了隐式Intent如何通过系统传递以启动其他Activity。创建隐式Intent时,Android系统通过将Intent的内容与在设备上其他应用的清单文件中声明的Intent过滤器进行比较,从而找到要启动的相应组件。如果没有为Activity声明任何Intent过滤器,则Activity只能通过显式Intent启动。
隐式Intent不指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。例如,如需打开网页,则可以使用隐式Intent,请求另一具有此功能的应用打开指定的网页。
图3-1描述了隐式Intent如何通过系统传递以启动其他Activity。
图3-1 隐式Intent启动Activity示意图
1)ActivityA创建包含操作描述的Intent,并将其传递给startActivity()。(www.xing528.com)
2)Android系统搜索所有应用中与Intent匹配的Intent过滤器。
3)找到匹配项之后,系统通过调用匹配Activity(Activity B)的onCreate()方法并将其传递给Intent,以此启动匹配Activity。
创建隐式Intent时,Android系统通过将Intent的内容与在设备上其他应用的清单文件中声明的Intent过滤器进行比较,从而找到要启动的相应组件。如果Intent与Intent过滤器匹配,则系统将启动该组件,并向其传递Intent对象。如果多个Intent过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。
Intent过滤器是应用清单文件中的一个表达式,它指定该组件要接收的Intent类型。例如,通过为Activity声明Intent过滤器,可以使其他应用能够直接使用某一特定类型的Intent启动Activity。如果没有为Activity声明任何Intent过滤器,则Activity只能通过显式Intent启动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。