android 中显式intent跟隐式intent区别

android 中显式intent跟隐式intent的区别就是有没有配置intent-filter,这样理解对吗?

阅读 3.4k
3 个回答

主要区别是隐式Intent没有指定有哪些接收方有权限接收,而显示Intent会明显指出,比如setComponent、setClass或者初始化的时候指定具体类名。

// 隐式调用
Intent intent = new Intent("abcd");
startActivity(intent);
// 显示调用
Intent intent = new Intent(this, TestActivity.class);
startActivity(intent);

Intent 分为两种类型:

显式 Intent:按名称(完全限定类名)指定要启动的组件。 通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。例如,启动新 Activity 以响应用户操作,或者启动服务以在后台下载文件。
隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。 例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。

https://developer.android.goo...

新手上路,请多包涵

显式 Intent 会指定一个确定的Activity,是否定义 intent-filter 和是否是显式Intent 毫无关系。隐式Intent 必须具有确定的 intent-filter,可以根据action或者其他的配置确定一个activity,你可以认为,每组 intent-filter 会对应唯一的activity,当确定以后即可以像显式Intent 一样使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题