第二个活动注册时,仅需在AndroidManifest.xml 中新增如下:
<activity
android:name=".SecondActivity">
</activity>
由于不是主活动,所以无需配置;
Intent 是android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可以被用于启动活动、启动服务、以及发送广播等产景;
Intent 的用法大致可分为两类:显式Intent 和隐式Intent;
1.显示Intent,FristActivity中代码如下:
Intent intent = new Intent(FristActivity.this,SecondActivity.class);
startActivity(intent);
此构造方法有两个参数(Context packageContext, Class cls),参数一Context要求提供一个启动活动的上下文,参数二Class表示需要启动的的目标活动。
通过activity 的startActivity 方法启动活动,它接收一个Intent 参数。
2.隐式Intent:不明确指出想要启动哪个活动,而是指定一系列抽象的action 以及category等信息,由系统去分析这个Intent,并帮忙找出合适的活动去启动。
AndroidManifest.xml代码如下:
<intent-filter >
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.example.activitytest.MY_CATEGORY"/>
</intent-filter>
在secondactivity 注册中加入定义action 以及 category 的设定。其中category 可以是默认的DEFAULT 也可以设定其他值。
FristActivity.java 代码如下:
Intent intent = new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
Intent 的构造方法直接将action从作为参数传入,如果AndroidManifest.xml中的category为DEFAULT ,表示用的是默认的category,那么在FristActivity中不需要再另外新增,如果不是,则调用addCategory()来新增一个category。