Intents and Intent Filters

本文深入探讨了Android应用程序中三个关键组件——Activity、Service和BroadcastReceiver——是如何通过Intent消息进行激活的。详细解释了Intent作为连接组件间交互的桥梁,以及其在启动Activity、初始化Service和广播通知等场景中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android应用程序中三个主要的组件——Activity, Service, Broadcast receiver——都是由Intent中传递过来的消息激活的,

Intent消息传递是这样一个工具,它把相同或者不同应用应用的组件后期运行绑定起来。Intent对象本身是一个被动的数据结

构,它用来承载一个抽象描述,这个抽象描述是关于将要执行操作基本属性。——在 broadcast的情况下,这个描述是已经发生

,并且正在被annouced的东西[这句要继续深刻理解一下]。下面有很多相互独立机制,为每种类型的组件传递Intent:

1. 一个Intent 对象传给Context.startActivity()或者Activity.startActivityForResult() 去启动一个Activity或者利用已存

在的Activity执行某项操作.
2.一个Intent 对象传给Content.startService(),初始化一个Service或者为一个正在进行的Service传递新的指示。同样地,一

个intent对象传给Context.bindService(),用来建立主动调用的组件和目标Service之间的连接。如果Service尚未运行,则可选

择性的启动。
3.Intent对象传递给任意broadcast方法,如Context.sendBroadcast(), Context.sendOrderBroadCast(),或者

Context.sendStickyBroadCast(), 这种方式的传递,会将Intent传递给所有感兴趣的Broadcastreceiver. 许多broadcast起源于

系统代码。

在上述各情况下,Android系统要找到需要的Activity, Service, 或者是broadcast receiver的集合,从而响应intent消息,并

且在需要的情况下初始化这些组件。这些Intent消息没有交集:broadcast intent 只送往broadcast receiver, 不会送往

activity或者service. 一个Intent传给startActivity(), 只会送往activity, 不会送给一个service或者broadcast receiver。

本文档开篇介绍Intent对象. 然后介绍Android中intent和组件的映射规则——Android如何解决那个组件应该接收一个Intent消息

。由于Intent没有明显的指明要调用哪个Component, 这个过程包含测试Intent对象和关联潜在目标组件的Intent filter.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值