Intent的作用与其属性的详解

Intent 我们使用的最普遍的是用来在一个Activity或者Fragment中去启动另外一个Activity同时传递相关的数据。同时Intent还可以用来启动Service组件、启动BroadcastReceiver。Android中之所以统一使用Intent来封装这种对各种组件的启动和数据传递,使程序的编写具有统一性,避免了Activity和Activity或者其他组件之间的的耦合。

其实例如启动Activity等这些功能,在Acitivity有类似 “startActivity(Class activityClass)”的功能接口,之所不使用就是因为我们在文章开头解释的原因。

在Intent中包含了”Component” “Action” “Category” “Data” “Extra” “Type”属性。
其中Extra经常被用来“携带”数据,是我们常常用到。
Component 其实是指被Intent启动的组件的如 “Activity” “Service”等。例如启动一个Activity可以使用下面的方式:

也可以使用如下方式:

当程序通过Intent 的component属性确定了启动哪个组件之后,被启动的组件就不需要向应用的主Activity那样呗指定来配置。

“Action” “Category”其实也是用来控制Intent启动组件的一种形式,我们还记得在AndroidManifest 中的主Activity的配置吗?

是的,Action和Category都是字符串属性,用来找出Intent中启动的Actvity到底是哪个。我们来看使用 “Action” “Category” 来启动Actvity的例子:

上面的code没有指定出具体哪一个Activity被启动,但是哪一个Activity被启动呢?答案就是这一行代码:

这行代码指定了在AndroidManifest中配置的Activity,这个Activity必须配置了intent-filter,同时其中配置了action属性,这个action的属性值为”CRAZYIT_ACTION”常量所表达的值。如下:

Category的使用也是类似的,大家多多思考一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值