我有很多活动扩展名为MasterActivity
的父活动,它集中了子活动中使用的所有常用功能,包括侧边菜单。我想推出一个具有自定义操作的应用程序:
com.example.otherapp.action.CUSTOMACTION
以下是AndroidManifest.xml
:
<activity android:name=".MasterActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="com.example.otherapp.action.CUSTOMACTION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在MasterActivity.java
:
Intent intent = new Intent();
intent.setAction("com.example.otherapp.action.CUSTOMACTION");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
当我导航到App中的一个子Activity时,它会显示Exception:
找不到处理意图的活动
然后坠毁了。但是,当我将以下条目添加到AndroidManifest.xml
时,它将启动一个操作选择器:
<activity android:name=".ChildActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="com.example.otherapp.action.CUSTOMACTION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
我有一百个活动,在清单中添加很多intent-filter
是不切实际的。有哪些替代方案?
此外,如何在不选择操作选择器的情况下直接启动应用 ?我想像这样启动应用程序:
Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.otherapp");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
但上述方式无法设置动作。