003_Intent 翻译学习

本文深入解析了Android中的Intent,包括其组成部分(动作、数据、分类、类型、组件、附加信息)、如何创建和使用Intent进行组件间通信,以及Intent在显式和隐式调用中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Intent

官方:http://developer.android.com/reference/android/content/Intent.html

相关博客:http://blog.youkuaiyun.com/xiao__gui/article/details/11392987对Action讲得清楚

http://hualang.iteye.com/blog/983471对常用的action、Data、Category等进行了归纳及翻译

类信息:public class Intent extends Object implements Parcelable Cloneable

简介:

Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。

目标组件一般通过声明<intent-filter>元素来声明自己能处理的动作。

Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。

Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定(显式);第二,通过Intent Filter过滤指定(隐式)。

Intent对象

     一个Intent对象包含了很多数据的信息,比如要执行的动作,类别,数据,附加信息等等。

ComponentName(组件名称)

     这个组件名称字段其实就是一个ComponentName类,它包含了一个目标组件的全限定名,比如com.flysnow.intent.Activity1,这就是一个全限定名的Activity。组件名字可以通过setComponent()、setClass()或者setClassName()设置,如果设置了Intent目标组件的名字,那么这个Intent就会被传递给特定的组件,也就是我们说的显式Intent.如果不设置,则是隐式的Intent,Android系统将根据Intent Filter中的信息进行匹配.

Action(动作)

      一个Intent的Action在很大程度上说明这个Intent要做什么,是查看(View)、删除(Delete)、编辑(Edit)等等。Action一个字符串命名的动作,Android中预定义了很多Action,可以参考Intent类查看。

     我们也可以自定义Action,比如com.flysnow.intent.ACTION_ADD,定义Action的时候最好能表明意思,要做什么,这样我们的Intent中的数据才好填充。Intent对象的getAction()可以获取动作,使用setAction()可以设置动作。

Data(数据)

     Data,其实就是一个URI,用于执行一个Action时所用到的数据的URI和MIME。不同的Action有不同的数据规格,比如ACTION_EDIT动作,数据就可以能包含一个用于编辑文档的URI,如果是一个ACTION_CALL动作,那么数据就是一个包含了tel:6546541的数据字段,所以上面提到的自定义Action时要规范命名。数据的URI和类型对于Intent的匹配是很重要的,Android往往根据数据的URI和MIME找到能处理该Intent的最佳目标组件。

Category(类别)

    Category指定了用于处理Intent的组件的类型信息,一个Intent可以添加多个Category,使用addCategory()方法即可,使用removeCategory()删除一个已经添加的类别。Android的Intent类里定义了很多常用的类别,可以参考使用。

Extras(附加信息)

     有些用于处理Intent的目标组件需要一些额外的信息,那么就可以通过Intent的put..()方法把额外的信息塞入到Intent对象中,用于目标组件的使用,一个附件信息就是一个key-value的键值对..Intent有一系列的put和get方法用于处理附加信息的塞入和取出。

Flag(标识)

     Android有很多标识,用于标记如何启动一个活动,是NEW_TASK还是其他等等,以及启动后怎么对待这个活动。可以参考Intent类中的FLAG常量字段。如通过一个广播启动一个新Activity就必须声明i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值