Intent详解之路01_显式指定Intent
来源:互联网 发布:阿里云 io hang 编辑:程序博客网 时间:2024/06/18 08:07
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.希望对你们有点帮助...