`
jguangyou
  • 浏览: 369037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Intent和Intent Filters

 
阅读更多

Intent主要包含Componet name、Action、category、data、type、Extras以及flag。

  • Componet name

       启动一个组件最直接的方式就是通过Componet name,也就是组件名称,它是一个ComponentName对象,指定组件可以通过一下几种方式:

setComponent(ComponentName)

 

 

 

其实下面的三种方式,最后调用的还是      setComponent(ComponentName)方法 。例如启动一个activity:

 

intent.setComponent(new ComponentName("com.hs","ActivityA"));
startActivity(intent);
  •  Action

Action是一个普通的字符串,他代表Intent要完成的一个抽象动作,这个动作具体有哪个组件完成,action字符串本身并不关心。例如Android提供的标准Action:Intent.ACTION_VIEW,它只代表一个抽象的查看动作,但是具体查看什么,启动哪个activity来查看,它是并不知道的,还必须需要其他附加信息来决定,例如category等。但是有一点,那就是只要activity的<Intent-filter>中包含这个action,这个activity就可能启动。

给intent设置action的方法为 setAction() 。

需要说明的是,在Android系统本身定义了许多标准的action,具体参看http://developer.android.com/reference/android/content/Intent.html

 

  • category

category也是一个字符串,他为action增加额外的附加信息,例如 CATEGORY_LAUNCHER,证明这是一个Launcher。

系统也有许多标准定义的category,请参考http://developer.android.com/reference/android/content/Intent.html

  • data

data是指提供的操作数据,例如电话联系人数据等。他的访问方式是通过URI对象来访问。例如:content://contacts/people/1

  • type

type指的是data数据的数据类型或者MIME类型。一般情况下可以通过数据来推断出类型。一般情况下,data和type只要设置一个就可以了,设置data通过setData().  设置MIME 类型,使用setType(), 如果要两个都设置,你可以使用 setDataAndType().

  • Extras

这是一个额外的信息。这可以用于为组件提供扩展的信息。例如,如果我们有一个行动,发送电子邮件,我们还可以包括额外的数据块来供给主体,主体,等。使用方法putExtra(String, Bundle).

  • flag

http://developer.android.com/reference/android/content/Intent.html#setFlags(int)

 

更多内容查看http://developer.android.com/guide/components/intents-filters.html

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics