美文网首页
IntentFilter的匹配规则

IntentFilter的匹配规则

作者: 学不好语文的LJ码农 | 来源:发表于2016-12-06 16:07 被阅读19次

以下内容整理自互联网,仅用于个人学习


只有当action类别、category类别和data类别同时匹配,才能成功启动Activity。另外,一个Activity可用有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity。

匹配过程:

  1. 加载所有的Intent Filter列表
  2. 去掉action匹配失败的Intent Filter
  3. 去掉url匹配失败的Intent Filter
  4. 去掉Category匹配失败的Intent Filter
  5. 判断剩下的Intent Filter数目是否为0。如果为0查找失败返回异常;如果大于0,就按优先级排序,返回最高优先级的Intent Filter

action匹配规则

至少要有一个action与之相同。

category匹配规则

必须为其子集。
注意,系统在调用startActivity或startActivityForResult的时候,会默认给Intent加上“android.intent.category.DEFAULT”这个category,所以,为了我们的Activity能接收隐式调用,必须在intent-filter中加“android.intent.category.DEFAULT”这个category。

data匹配规则

至少有一个data与之相同。

相关文章

  • IntentFilter的匹配规则

    允许转载请注明出处。 IntentFilter的匹配规则 对于初学者来说,学习IntentFilter的匹配规则还...

  • IntentFilter的匹配规则

    IntentFilter的匹配规则 IntentFilter中的过滤信息有action,category,data...

  • IntentFilter匹配规则

  • IntentFilter匹配规则

    首先废话一下,如果要写东西,csdn和简书还是老老实实选简书。不管什么,就冲csdn不会自动保存,简书会自动保存就...

  • IntentFilter匹配规则

    IntentFilter直译过来就是意图过滤器,我们可以通过它的匹配规则去打开我们想要打开的一类Activity,...

  • IntentFilter的匹配规则

    前言 我们知道,启动Activity分为两种,显示调用和隐式调用。这里主要介绍隐式调用的IntentFilter匹...

  • IntentFilter的匹配规则

    启动Activity分为两种,显示调用和隐式调用。显式调用需要明确的指定被启动对象的组件信息,包括包名和类名...

  • IntentFilter的匹配规则

    我们知道,Activity的启动模式分为两种,分别是显式启动和隐式启动。显式启动需要明确的指定被启动的对象的组件信...

  • IntentFilter 的匹配规则

    1. 显示调用与隐式调用   显示调用需要明确指定被启动对象的组件信息,包括类名与包名,隐式调用不需要明确指定组件...

  • IntentFilter的匹配规则

    Activity的隐式调用需要明确指定组件信息。原则一个Intent不应该既是显式又是隐式调用,如果两者共存的话以...

网友评论

      本文标题:IntentFilter的匹配规则

      本文链接:https://www.haomeiwen.com/subject/szsrmttx.html