首页 / 时尚生活 / 正文

Intentfilter只要和Intent匹配成功便可启动对应activity

来源:
编辑:亿尚风范
时间:2023-10-26

我们知道,启动Activity分为两种,显示调用和隐式调用。这里主要介绍隐式调用的IntentFilter匹配规则。隐式调用需要Intent能够匹配目标组件的IntentFilter中所设置的过滤信息,如果不匹配将无法启动目标Activity。IntentFilter的过滤信息是action、category、data,接下来详细介绍一下这些规则。


为了匹配过滤列表,需要同时匹配过滤表中的 action、category、data 信息,否则匹配失败。一个过滤列表中的 action、category、data 可以有多个,只有一个Intent同时匹配action类别、category类别、data类别才算完全匹配,只有完全匹配才能成功启动目标Activity。另外一点,一个Activity中可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity。Android中提供了Intent机制来协助应用间的交互与通讯, Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。
      1、使用startActivity() 或startActivityForResult(),传入一个intent来启动一个activity。setResult(),传入一个intent来从activity中返回结果。
      2、将intent对象传给startService()来启动一个service或者传消息给一个运行的service。将intent对象传给bindService()来绑定一个service。
      3、将intent对象传给sendBroadcast(), sendOrderedBroadcast(),或者sendStickyBroadcast()等广播方法,则它们被传给 broadcast receiver。
      Intent是一种运行时绑定(runtimebinding)机制,它能在程序运行的过程中连接两个不同的组件。它包含Component,Action,Category,Date,Type,Extra,Flag这7个属性。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。

时尚头条换一换
时尚电商换一换
热点摘要换一换
  • CopyRight @ 2005-2024 Reserved 亿尚网版权所有,所涉内容请查询声明细则