码迷,mamicode.com
首页 > 移动开发 > 详细

android开发之Intent(1)

时间:2015-01-12 23:49:18      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

Intent可以用于启动组件,并且携带数据,充当组件间通信的媒介。

Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flag7种属性。

以下将分别说说。

 

Component

   Component可以通过指定包名和类名来启动特定组件。因此,明确指定Component属性的Intent也称为显式Intent。例子如下:

// 创建一个ComponentName对象
ComponentName comp = new ComponentName(FromActivity.this,
        ToActivity.class);
Intent intent = new Intent();
// 为Intent设置Component属性
intent.setComponent(comp);
startActivity(intent);

    由于包名与Context是一一对应的,因此,ComponentName中也提供了传入Context参数的构造方法。

 

Action

     如下,设置Action为“xxx”,如果某个Activity在AndroidManifest.xml中包含形如代码2中的代码,则可以利用代码1启动该activity。每个Intent只可以指定一个Action。另外,如果在没有设置Category时,会默认使用”android.intent.category.DEFAULT”,因此在代码2中需要加入<category android:name="android.intent.category.DEFAULT" />

代码1

// 创建Intent对象
Intent intent = new Intent();
// 为Intent设置Action属性(属性值就是一个普通字符串)
intent.setAction("xxx");
startActivity(intent);

代码2

<intent-filter>
    <action android:name="xxx" />    
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

 

Category

   使用方法与Action类似,使用intent.addCategory(“xxx”),然后在AndroidManifest.xmlActivity的注册中加入<category android:name=”xxx”>即可。与Action不同的是,一个Intent可以包含多个Category值,而这个Intent只能启动在注册时加入了所有该Intent含有的Category值的Activity。

android开发之Intent(1)

标签:

原文地址:http://www.cnblogs.com/limaofuyuanzhang/p/4219985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!