Android Activity
Android 中我们可以通过 显示启动 和 隐式启动 来启动一个新的 Activity
显式启动
通过包名来启动
这是最常见的
startActivity(new Intent(当前 Activity.this,要启动的 Activity.class));
通过 Intent 的 ComponentName
ComponentName cn = new ComponentName("当前 Activity 的全限定类名","启动 Activity 的全限定类名") ; Intent intent = new Intent() ; intent.setComponent(cn) ; startActivity(intent) ;
初始化 Intent 时指定包名
Intent intent = new Intent("android.intent.action.MAIN"); intent.setClassName("当前 Activity 的全限定类名","启动 Activity 的全限定类名"); startActivity(intent);
隐式启动
通过 Intent-filter 的 Action,Category 或 data 来实现
AndroidManifest.xml 配置
<activity android:name=".SecondActivity" android:label="第二个 Activity" > <intent-filter> <action android:name="ms_action" /> <category android:name="ms_category" /> <category android:name="android.intent.catetory.DEFAULT" /> </intent-filter>
Java 代码
Intent it = new Intent(); it.setAction("ms_action"); it.addCategory("ms_category"); startActivity(it);
直接通过包名启动 apk 的
Intent intent = getPackageManager().getLaunchIntentForPackage ("apk 第一个启动的 Activity 的全限定类名") ; if(intent != null) startActivity(intent) ;