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.希望对你们有点帮助...
原创粉丝点击