前言
使用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。