首页 > 代码库 > Develop系列-API Guides-应用组件-Intents and Intent Filters(1)
Develop系列-API Guides-应用组件-Intents and Intent Filters(1)
Intents 和 Intent Filters
(Intent译为意图,让人比较费解,实际上解释为“消息”更加合理,干脆就不翻译了)
Intent是能在app组件间传递的消息体,基本使用方式有如下三种:
- 启动activity
- startActivity:intent描述需要启动的activity和必须的数据
- startActivityForResult:intent启动的activity结束后,会触发onActivityResult回调
- 启动服务
- startService:intent描述需要启动的service和必须的数据
- bindService
- 发送广播
- 通过Intent来的
sendBroadcast()
,sendOrderedBroadcast()
, orsendStickyBroadcast()
来发送广播
Intent类型
- 显式intents:通过指定包名+类名来明确需要启动的组件,一般用在app内部使用。
- 隐式intents:不指定具体的组件,通过定义一些动作或者条件,在系统中匹配能够执行动作或者满足条件的组件。
- A创建intent,作为入参startActivity
- Android系统搜索所有app的intent filter用于适配A发出的intent。(如果有多个匹配上,会弹框给用户选择)
- Android系统通过onCreate启动匹配上的B,并把A的intent当做入参
Caution: 为了确保你的app是安全的,通常用显式intent的方式来启动service,因为用隐式intent启动服务是有安全风险的,隐式intent无法预知启动的service就是你想要的那个。
创建一个Intent
Intent主要包含如下属性:
组件名
需要启动的组件名,一般指包名+类名:com.example.ExampleActivity
对于显式intent是必选的,对于隐式intent,不能指定。
Action(动作?)
Data(数据)
Category(类别)
Extras(额外信息)
Flags(标记)
显式intent例子
隐式intent例子
应用程序选择器
接收隐式intent
过滤器例子
使用Pending Intent
Intent解析
Action测试
Category测试
Data测试
Intent匹配
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。