android 中显式intent跟隐式intent的区别就是有没有配置intent-filter,这样理解对吗?
Intent 分为两种类型:
显式 Intent:按名称(完全限定类名)指定要启动的组件。 通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。例如,启动新 Activity 以响应用户操作,或者启动服务以在后台下载文件。
隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。 例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。
显式 Intent 会指定一个确定的Activity,是否定义 intent-filter 和是否是显式Intent 毫无关系。隐式Intent 必须具有确定的 intent-filter,可以根据action或者其他的配置确定一个activity,你可以认为,每组 intent-filter 会对应唯一的activity,当确定以后即可以像显式Intent 一样使用
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
主要区别是隐式Intent没有指定有哪些接收方有权限接收,而显示Intent会明显指出,比如setComponent、setClass或者初始化的时候指定具体类名。