1 Intent
Intent是Android程序中各组件之间进行交互的一种重要方式,可以指明当前组件想要执行的动作,还可以在不同的组件之间传递数据。Intent一般用于启动活动,
启动服务以及发送广播。
Intent可以分为显示Intent和隐式Intent。
1.1显示Intent
Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, class<?> cls).这个构造函数接收两个参数,第一个参数
是context要求提供一个启动活动的上下文。第二个参数class是指想要启动的目标活动。Activity中提供了一个startActivity()方法,这个方法
用于启动活动,它接收一个Intent参数。这里将构建好的Intent传入startActivity()方法就可以启动目标活动。
例如在FirstActivity中通过按键启动第二个服务。
public void onClick(View view) {
Toast.makeText(MainActivity.this,"You are good",Toast.LENGTH_SHORT).show();
Intent intent= new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
1.2隐式Intent
隐式Intent不明确指明需要启动哪一个Activity,而是指定了一系列抽象的action和category等信息,然后交由系统分析这个Intent,找出合适的活动去启动。合适的活动就是可以响应隐式Intent的活动。
通过在AndroidManifest的<activity>标签下配置<Intent-filter>的内容,可以指定当前活动可以响应的action和category。
例如
<activity
android:name=".Main2Activity"
android:label="seccond activity">
<intent-filter>
<action android:name="com.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
在<action>标签内指明了当前可以响应com.activitytest.ACTION_START这个action,而<category>标签包含的信息指明了当前的活动能够响应
的Intent中还可能带有的category.只有<ac