Intent
显示启动
- class跳转
Intent intent = new Intent(this, SecondActivity.class);
this.startActivity(intent);
- 包名类名
Intent intent = new Intent();
intent.setClassName(this, "edu.slu.Activity.class");
this.startActivity(intent);
- ComponentName
Intent intent = new Intent();
ComponentName cname = new ComponentName(this, SecondActivity.class);
intent.setComponent(cname);
this.startActivity(intent);
隐式启动
Intent intent = new Intent("action.name");
//填写<activity><intent-filter>中的action android:name值
this.startActivity(intent);
或
Intent intent = new Intent();
//填写<activity><intent-filter>中的action android:name值
intent.setAction("action.name");
this.startActivity(intent);
当有多个activity匹配时,将会提示用户选择一个启动
Intent属性
Intent对象大致包括7大属性:Action(动作)、Data(数据)、Category(类别)、Type(数据类型)、Component(组件)、Extra(扩展信息)、Flag(标志位)。
其中最常用的是Action属性和Data属性。
- Action
用来表现意图的行动
一个字符串变量,可以用来指定Intent要执行的动作类别。
常见的Action:
- Data
表示与动作要操纵的数据
一个URI对象是一个引用的data的表现形式,或是data的MIME类型;data的类型由Intent的action决定
- Category
用来表现动作的类别
一个包含Intent额外信息的字符串,表示哪种类型的组件来处理这个Intent。任何数量的Category 描述都可以添加到Intent中,但是很多intent不需要category
- Type
指定数据类型
一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导
- Component
目的组件
指定Intent的目标组件名称,当指定了这个属性后,系统将跳过匹配其他属性,而直接匹配这个属性来启动对应的组件
- Extra
扩展信息
Intent可以携带的额外 key-value 数据,你可以通过调用putExtra()
方法设置数据,每一个 key对应一个 value数据。你也可以通过创建 Bundle对象来存储所有数据,然后通过调用putExtras()
方法来设置数据
- Flag:
期望这个意图的运行模式
用来指示系统如何启动一个Activity,可以通过setFlags()
或者addFlags()
可以把标签flag用在Intent中