1.使用ComponentName指定了包名和类名的,例如
ComponentName comp = new ComponentName("com.zmq.firstapp", "com.zmq.firstapp.TestActivity");
Intent intent = new Intent();
intent.setComponent(comp);
startActivity(intent);
则在相应的要打开的Activity的配置中需要:
(1)使用
<intent-filter>属性,增加action,其中action中的name可以为空。
<intent-filter >
<action android:name="com.zmq.firstapp.Test"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
(2)若是没有使用<intent-filter>属性,则增加android:exported属性为true。(有
<intent-filter>属性时,
android:exported被默认被设置成true。没有
<intent-filter>属性时,
android:exported默认是false
)
<activity android:name="com.zmq.firstapp.TestActivity" android:exported="true">
2.使用Action
需要在Activity中配置:
<activity android:name="com.zmq.firstapp.TestActivity" android:exported="true">
<intent-filter >
<action android:name="com.zmq.firstapp.Test"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
特别注意,需要添加category.DEFAULT(因为系统会默认category.DEFAULT 属性),否则会找不到Activity。
Intent intent = new Intent();
intent.setAction("com.zmq.firstapp.Test");
startActivity(intent);