现在的位置: 首页 > 综合 > 正文

Intent笔记

2019年09月07日 ⁄ 综合 ⁄ 共 919字 ⁄ 字号 评论关闭

A、

1. Intent负责四大组件之间的通讯,实现调用者与被调用者之间的解耦。

2.     Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,

  Android则根据此Intent的描述,负责找到对应的组件,   将 Intent传递给调用的组件,并完成组件的调用。

B、动作(Action)    数据(Data)    类型(type)    类别(category)

显式Intent:    
    指定了component属性的Intent

    调用intent.setComponent(ComponentName),  或者intentsetClass(Context, Class)来指定

隐式Intent
    1、Intent需要包含足够的信息,这样系统才能根据这些信息,    在所有的可用组件中,找到满足此Intent的组件。
    
    2、Intent解析机制主要是通过查找已注册在AndroidManifest.xml中 所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。
      解析过程中,通过Intent的action、type、category这三个属性来进行判断的
    
    3、匹配规则

如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;

如果Intent没有提供type,系统将从data中得到数据类型。目标组件的数据类型列表中必须包含Intent的type,否则不能匹配。    

如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如Intent中包含了两个类别:LAUNCHER_CATEGORY 和 ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。

如果Intent中的数据不是content: 类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme (比如 http: 或者mailto: ) 进行匹配。Intent的scheme必须出现在目标组件的scheme列表中,才能匹配。

   

【上篇】
【下篇】

抱歉!评论已关闭.