Android 隐式启动Activity方式之IntentFilter匹配规则

本文详细介绍了Android中隐式启动Activity的IntentFilter匹配规则,包括action、category和data的匹配条件。重点讲解了如何通过IntentFilter指定过滤信息,以及Intent如何与过滤规则对应以成功启动Activity。同时,提到了PackageManager和Intent的resolveActivity方法用于检查是否存在匹配的Activity,以及重要的ACTION_MAIN和CATEGORY_LAUNCHER组合在应用列表中的作用。
摘要由CSDN通过智能技术生成
  • 显示调用

    Intent intent1 = new Intent(MainActivity.this, MainActivity.class);
    startActivity(intent1);
    需要明确指定被调用对象的组件信息,包括包名和类名。
  • 隐式调用

    需要Intent能够匹配目标组件的IntentFilter中设置的过滤信息,如果不匹配则无法启动目标Activity
    1.    IntentFliter中过滤信息有:action,category,data。(以上三个过滤信息在过滤列表中可以存在多个)
    2.    匹配过滤列表时,需要同时匹配三个类别才算完全匹配,只有完全匹配才能成功启动目标Activity。
    3.    一个Activity可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可启动对应的Activity。
    • action匹配规则

         ① action是一个字符串,Intent中的action必须能够和匹配规则中的action匹配,即action字符串值完全一致。
         ② action区分大小写。
         ③只要Intent中action能够匹配上过滤规则中的任意一个action即可。
         ④ 如果Intent中没有指定action,那么匹配失败。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值