让你的应用从一个孤岛变成繁华都市,隐式Intent就是应用之间的桥梁。
第一章:初识Intent - 不只是“意图”那么简单
在Android开发世界里,Intent(意图)就像是连接各个组件的粘合剂,也是应用间交流的桥梁。简单来说,Intent是一种消息传递机制,你可以在三大组件(Activity、Service、BroadcastReceiver)之间传递消息,不仅可以执行当前应用内的操作,还能启动其他应用的功能。
Intent主要分为两种类型:
- 显式Intent:直接指定要启动的组件名(如Activity、Service的类名),就像直接打电话给某人,明确知道要联系谁。例如:
startActivity(new Intent(A.this, B.class))。 - 隐式Intent:不指定具体的组件,而是声明一个要执行的操作(Action),让系统去找到能处理这个操作的应用。例如:打开网页、拨打电话等。
隐式Intent的强大之处在于它能让你的应用与其他应用协作。比如你的应用需要显示地图,不必自己实现地图功能,只需创建一个显示地图的Intent,系统就会启动已安装的地图应用来处理。
第二章:隐式Intent的三大核心组件
理解隐式Intent,首先要掌握它的三个核心组成部分:Action、Data和Category。
1. Action(动作)
Action是一个字符串,表示要执行的操作。Android系统已经为我们预定义了许多Action常量,如:
ACTION_VIEW:用于显示数据给用户ACTION_EDIT:用于编辑数据ACTION_DIAL:拨打电话号ACTION_SEND:发送数据(文本、图片等)
2. Data(数据)
Data是执行操作所涉及的数据,用URI表示。例如:网页URL、电话号码、文件路径等。Data通常与Action结合使用,明确告诉系统我们要对什么数据执行什么操作。
3. Category(类别)
Category提供了关于Intent的额外信息,帮助系统更精确地找到合适的组件。常用的Category有:
CATEGORY_DEFAULT:表示该组件愿意接收隐式IntentCATEGORY_BROWSABLE:表示该组件可以在浏览器中安全运行CATEGORY_LAUNCHER:表示该Activity是任务的初始Activity
第三章:预定义动作实战 - 让你的应用“无所不能”
下面我们通过几个实际例子,看看如何使用包含预定义动作的隐式Intent。
范例一:拨打电话
拨打电话是移动应用中最常见的功能之一。使用隐式Intent实现拨号功能非常简单:
// 创建拨号Intent
Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
startActivity(callIntent);
注意:如果要直接拨打电话而非仅仅打开拨号界面,需要使用Intent.ACTION_CALL动作,并添加CALL_PHONE权限。
范例二:打开网页
在应用中打开网页是一个常见需求,利用隐式Intent可以轻松实现:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



