android官方文档阅读笔记

隐式Intent匹配规则
action:

intent 中指定的action只要与intent-filter中其中一个action匹配即可
如果intent未指定任何actionintent-filter可以被匹配到(前提是,intent-filter至少指定了一项 action
如果 intent-filter未指定任何action,则不会被匹配到
举个栗子

可以的

Intent intent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <action android:name="android.intent.action.EDIT" />  //  把下面两个注释掉也是可以的
    <action android:name="android.intent.action.VIEW" />
</intent-filter>

可以的

Intent intent = new Intent();  //  Intent未指定Aaction
//  sendIntent.setAction(Intent.ACTION_SEND);
<intent-filter>
    <action android:name="android.intent.action.SEND" /> //  指定了至少一个action
</intent-filter>

不可以的

Intent intent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
<intent-filter>
    //  未指定action
</intent-filter>

不可以的

Intent intent = new Intent(); //  intent未指定action
//  sendIntent.setAction(Intent.ACTION_SEND);
<intent-filter>
    //  未指定action
</intent-filter>
category:

Intent中的每个category均必须与过滤器中的类别匹配,如果Intent中未指定category,则也会匹配

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容