Android基础知识(四):Intent

Android基础知识(四):Intent

Intent是Android程序中各组件之间进行交互的一种重要方式,其不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广播等场景。
Intent大致可以分为两种:显示Intent和隐式Intent。
一、显示Intent
显示Intent是指按名称(完全限定类名)指定要启动的组件
显示Intent的用法如下图所示。该代码使用Intent在MainActivity的基础上启动SecondActivity这个活动,通过startActivity()方法执行这个intent。其中第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标Activity。
在这里插入图片描述

二、隐式Intent
隐式Intent:不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它。
在介绍隐式Intent的使用之前,需要先了解一下AndroidManifest.xml中的一些标签。在前面一篇笔记中介绍过,Android的四大组件的注册声明需要在AndroidManifest.xml中进行(Broadcast Receiver可以动态注册),以Activity的注册为例,如下图所示。
在这里插入图片描述
其中intent-filter为Activity的一个过滤列表,一个过滤列表中的action、type、category可以有多个,所有的action、type和category分别构成不同类别,同一类别信息共同约束当前类别的匹配过程。只有一个Intent同时匹配action、type和category这三个类别才算完全匹配。(更多的关于标签的知识,参看:你必须弄懂的Intent Filter匹配规则)。
隐式Intent使用方式如下。其中action的字符串只能指定一个,而category可以指定多个,Intent通过action、category进行匹配,找到对应的Activity并启动。
在这里插入图片描述
Intent-filter中的标签在Java代码中有对应的setxx()方法,例如data标签的setData()方法,更多的隐式Intent用法可参看《第一行代码》。

参考资料:《第一行代码 Android 第2版》
你必须弄懂的Intent Filter匹配规则

猜你喜欢

转载自blog.csdn.net/weixin_38196407/article/details/89395838
今日推荐