Android开发进阶(一) Intent与IntentFilter

本文详细介绍了Android中的Intent,特别是Intent的隐式调用及其作用、匹配规则。通过Intent隐式调用,可以实现组件间的低耦合交互,提高应用的安全性和灵活性。内容涵盖Intent显示调用与隐式调用的区别,Intent隐式调用的匹配规则,包括action、category和data的匹配,以及在实际场景中的应用示例。
摘要由CSDN通过智能技术生成

1.前言

在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度。Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究。

读完本篇你将会了解:

1.Intent的显示调用与隐式调用
2.隐式调用的匹配规则(重点)
3.隐式调用的使用场景
4.隐式调用的优点

2. Intent与组件

Intent促进了组件之间的交互,这对于开发者非常重要,而且它还能做为消息的载体,去指导组件做出相应的行为,也就是说Intent可以携带数据,传递给Activity/Service/BroadcastReceiver。

  • 启动Activity。Activity可以简单的理解为手机屏幕中的一个页面,你可以通过将Intent传入startActivity方法来启动一个Activity的实例,也就是一个页面,同时,Intent也可以携带数据,传递给新的Activity。如果想要获取新建的Activity执行结果,可以通过onActivityResult()方法去启动Activity。
  • 启动Service。Service是一个不呈现交互画面的后台执行操作组件,可以通过将Intent穿入startService()方法来启动一个Service来启动服务。
  • 传递广播BroadCast。广播是任何应用都可以接收到的消息,通过将Intent传递给 sendBroadcast()、sendOrderedBroadcast() 或 sendStickyBroadcast()方法,可以将广播传递接收方。

3.Intent类型

Intent分为两种类型,分别为:

  1. Intent显示调用;
  2. Intent隐式调用;

3.1 Intent显示调用

就是我们平常最常用的调用方式,直接指定组件的信息,包括包名和类名。比较简单,这里详细说说Intent的隐式调用。

3.2 Intent隐式调用

Intent隐式调用不指定相应的组件,而是通过Intent和IntentFilter来过滤信息,来达到启动对应组件的目的。下面用新的章节来说说隐式调用相关。

4.Intent隐式调用的作用与场景

4.1 Intent隐式调用的作用

降低耦合性:在组件化的时代,我们可以在不需要依赖的情况下,直接隐式调用组件。
更为安全:不需要指定组件的信息,只要是符合匹配规范的组件才会被调用。
更为灵活: 有着更为广泛的应用场景,我们可以调用许多系统提供的服务,如拨打电话,发短信等。

4.2 Intent隐式调用的场景

相信很多人都做过拨打电话的demo,通过如下代码就可以实现。

Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:" + "手机号码");
intent
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnjoyZhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值