前言
Intent在Android开发的应用非常常见,今天我就带给大家简单讲一下Intent的相关知识及其用法。
目录
一、定义
意图,描述的是应用的动作及其对应的数据。
二、作用
- 指定当前组件要完成的动作
- 在Android不同组件不同组件进行数据的传递
Activity、Service、BroadcastReceiver之间的通信以Intent为通信载体
三、使用方法
3.1指定当前组件要完成的动作
分为显式和隐式意图:
1. 显式意图
a. 作用
明确指定需要启动的组件名
(调用Intent的构造方法、Intent.setComponent()或Intent.setClass()方法明确指定组件名)
b. 实例:
(目的:使用显示Intent的方式使FirstActivity启动SecondActivity)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 隐式意图
a. 作用
没有明确指定需要启动的组件名,但却指定了需要启动组件需要满足的条件
- 通过IntentFilter声明
(AndroidManifest.xml文件下的标签下配置的内容,来指定当前活动能够响应的action和category。)
- 声明条件包括动作(Action)和类型(Category):
- 动作(Action):用来指明要实施的动作是什么-具体请查看Android.content.intent类;
- 类型(Category):一个字符串,包含了关于处理该intent的组件的种类的信息:
- 动作(Action):用来指明要实施的动作是什么-具体请查看Android.content.intent类;
- 通过IntentFilter声明
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
b. 实例 (目的:使用隐示Intent的方式使FirstActivity启动SecondActivity)
- 对于显式Intent不需要对Intent进行解析,直接启动;
对于隐式Intent需要对Intent进行解析:解析出条件-匹配组件-启动符合条件的组件;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
3.2 不同组件之间传递数据传递
-
使用方法
在当前活动中调用PutExtra()方法把要传递的数据暂存在Intent中,并在新启动的Activity中取出Intent中的数据即可 -
可传递的数据类型
a. 八种基本数据类型(boolean byte char short int long float double)
b. String、Bundle、Parcelable、Serializable和CharSequence类型 -
实例:
- 目的:将FristActivity中的一个字符串传递到SecondActivity中,并在SecondActivity中将Intent对象中的数据(FristActivity传递过来的数据)取出
- 实现代码及解析
a. 数据传递代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
b. 数据取出代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12