使用Intent在活动间穿梭 --7

来源:互联网 发布:gcc for windows 编辑:程序博客网 时间:2024/05/30 04:38

第二个活动注册时,仅需在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。

0 0
原创粉丝点击