头条 科技 产经 家电 智能 手机 芯片 数码 电商 English
中国IT产经新闻网-移动互联网与智能搜索领域是未来IT产业发展的趋势!
中国IT产经新闻/热门综合/正文
Intentfilter只要和Intent匹配成功便可启动对应activity
来源:
2023-08-18
编辑:晓露

       我们知道,启动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 @ 2008-2024 IT产经新闻网 All Right Reserved 违者必究 湘ICP备2022017330号-2