Android的Intent匹配(二)

   PmS内部类ActivityIntentResolver的基类是IntentResolver,该类内部定义了一些核心数据变量,在PmS启动时调用scanDirLI()函数内部,会填充这些数据变量,这些变量保存了intent-filter不同字段可能包含的Component对象。首先和MIME类型相关的四个变量,分别是mFilter、mBase、mBaseTypeToFilter、mTypeToFilter、及mWildTypeToFilter,这四个数据变量的定义如下所示:

  HashSet<String> mFilter;

  HashMap<String,ArrayList<F>> mBaseTypeToFilter,mTypeToFilter,mWildTypeToFilter;

  mFilter包含了所有包含MIME类型的目标对象,mBaseTypeToFilter是mFilter的一个子集,mTypeToFilter也是mFilter的一个子集,mWildTypeToFilter是mTypeToFilter的一个子集

接着定义了scheme几action字段相关的数据变量,分别为mSchemeToFilter和mActionToFilter。另外还额外定义了一个mTypedActionToFilter,它也是一个和action字段相关的数据变量,它和mActionToFilter的区别在于,它是同事包含Action和MIME字段的,而前者没有data字段

  有了衣裳数据变量后,剩下的就仅仅是进行匹配操作了

你可能感兴趣的:(Android的Intent匹配(二))