Intent的属性及IntentFilter的匹配

前言

使用Intent可以结合IntentFilter来隐式调用相应的组件。好处:解耦、可以启动特定的组件(设置Component属性),提高系统的扩展性和可维护性。


Action、Category、Data都有是必须同时匹配才可以启动。   

1.Action:字符串,系统预定义了一些action,也可以自定义,区分大小写,Intent中的action和Intent-Filter中的任何一个匹配成功即可。(一个Intent最多包含一个action)

2.Category:字符串,系统一定要来一些,也可以自定义,当Intent中的category可以不写,但如果写了的话每一个都要和Intnet-Filter中的category匹配。(一个Intent可包含多个category)

3.Data:用法和Action一样。Data属性用于向Action属性提供操作数据。

4.Type属性用于指定该Data属性指定的Uri的MIME类型。

Date和Type属性可以相互覆盖,哪个写在前边,后边的就会覆盖前边的属性,要想两个同时保存,用setDataAndType方法。

 Data的属性主要可以分为4种“scheme,host,port,path”,即“scheme://hist:port path”当仅有port没有host时,Data不起作用,仅有path没有host时,Data也不起作用。

隐式调用Intent的好处,可以启动特定的组件(设置Component属性),可以解耦。

如:返回home桌面

如:打开百度网页

如:编辑联系人

如:打电话

5.Extra 用于在多个Action之间交换数据,里边放的是Bundle对象。

6.Flag属性,控住旗标,有的旗标功能相当于加载模式。如:FLAG_ACTIVITY_CLEAR_TOP相当于singleTask;

FLAG_ACTIVITY_SINGLE_TOP相当于singleTop。

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

推荐阅读更多精彩内容

  • 转载注明出处:http://www.jianshu.com/p/a7535c3f33df 1. 前言 在Andro...
    王三的猫阿德阅读 2,890评论 0 10
  • 显示Intent和隐式Intent Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启...
    狮_子歌歌阅读 1,220评论 0 2
  • Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还...
    枫羽望空阅读 1,054评论 0 7
  • 重庆我不喜欢。 从朝天门码头下船,我的行李还不少,提着爬上去才到路边,胳膊酸痛了好几天,一位阿姨很热心地帮我,十分...
    那只眺望的飞鸟阅读 258评论 0 0
  • 老公带回的这只老山参,当时我没太在意,丢在厨房的桌子上。这时接到七叔打来的电话,是个噩耗: 七叔的儿子——也就是我...
    冬青花开阅读 389评论 0 2