在AndroidManifest.xml中定义外部应用程序操作,Master&儿童活动

时间:2016-04-27 06:32:26

标签: android android-intent

我有很多活动扩展名为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);

但上述方式无法设置动作。

0 个答案:

没有答案