本文主要是介绍Android开发进阶(一) Intent与IntentFilter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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分为两种类型,分别为:
- Intent显示调用;
- 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
这篇关于Android开发进阶(一) Intent与IntentFilter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!