1.相信大家都用过Intent对象吧,它封装了Android应用程序需要启动某个组件的意图,简单来说它
就是用来启动某一个Activity的,下面详细的介绍下它的显式声明的几个使用方法..
截个图先:
//显式Intent的声明方法
/*
* 可以通过setComponent的方法设置要启动的组件
* 声明ComponentName有三种方法
*/
Intent intent = new Intent();
//1.第一个参数是该组件所在的包名,第二个参数是指向要启动的组件,记得要加上包名
ComponentName comp = new ComponentName("com.galis.android_intent", "com.galis.intent2.Test2_Activity");
//2.第一个参数是Context对象,它是该Activity的应用环境接口,第二个参数是指向要启动的组件,记得要加上包名
ComponentName comp2 = new ComponentName(Test1_Activity.this, "com.galis.intent2.Test2_Activity");
//3.这种方法最常用,第一个参数是Context对象,第二个参数直接指定要启动组件的类
ComponentName comp3 = new ComponentName(Test1_Activity.this,Test2_Activity.class);
intent.setComponent(comp);
startActivity(intent);
/*
* 也可以通过setClass和setClassName的方法来设置要启动的组件
* 同样有三种方法,都是一样的效果
*/
Intent intent2 = new Intent();
intent2.setClass(Test1_Activity.this,Test2_Activity.class);
intent2.setClassName(Test1_Activity.this, "com.galis.intent2.Test2_Activity");
intent2.setClassName("com.galis.android_intent", "com.galis.intent2.Test2_Activity");
startActivity(intent2);
/*
* 当然,最简单的方法就是下面这个了
* 实际上它是对上面几个方法的简化吧,个人认为
*
*/
Intent intent3 = new Intent(Test1_Activity.this,Test2_Activity.class);
startActivity(intent3);
2.要记得一点的是,Intent显式使用的时候,在AndroidMainFest.xml中,被指定的Activity
只需要设置android:name这个属性就可以了,intent-filter设定是没有意义的...
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.galis.android_intent.Test1_Activity"
android:label="Test1Activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.galis.intent2.Test2_Activity"
android:label="Test2Activity"
>
</activity>
</application>
3.希望对你们有点帮助...