如何为同一活动创建多个相同的intent-filters,每个都将用于不同的操作?

时间:2014-11-13 10:08:05

标签: android android-intent android-manifest

假设我有一个可以处理从其他应用程序发送图像的活动,其定义类似于您在此处看到的内容:

    <activity
        android:name="..."
        android:configChanges="keyboardHidden"
        android:label="..."
        android:screenOrientation="portrait" >
        <intent-filter android:label="new collection" >
            <action android:name="android.intent.action.SEND_MULTIPLE" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
        </intent-filter>
        <intent-filter android:label="new collection" >
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
        </intent-filter>
    </activity>

一切都很好,但如果我想添加相同的意图过滤器(处理向应用程序发送图像)该怎么办呢?但这次使用不同的标签我可以在代码中检查哪个?

例如,我可以为&#34添加一个intent-filter;添加到现有的集合&#34;

我已经搜索了自己可以设置的属性,这些属性不会影响操作系统解析意图的方式,但我已经失败了。

我该如何正确地做到这一点? 我真的要创建一个新活动吗?

1 个答案:

答案 0 :(得分:1)

在清单中添加活动别名:

    <activity-alias
        android:name="..."
        android:targetActivity="<original activity name>"
        android:label="add to existing collection"
    >
        <intent-filter>
        ...
        </intent-filter>
    </activity-alias>

您可以在label级别或activity-alias级别使用intent-filter,在您的活动中使用Intent的组件来区分使用的组件