多个活动的相同意图过滤器

时间:2017-03-19 07:25:12

标签: java android android-intent android-activity intentfilter

我有多个活动应该使用相同的intent过滤器,在清单文件中定义如下:

<activity
    android:name="com.example.MainActivity"
    android:label="@string/mainTitle" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name="com.example.Activity1">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.MainActivity" />
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>
<activity
    android:name="com.example.Activity2">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.MainActivity" />
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>
<activity
    android:name="com.example.Activity3">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.MainActivity" />
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

因此,当用户想要将图像共享给我的应用程序时,它将显示3次。

如何仅使用一个intent过滤器来处理它? (所以在分享时也只会为用户显示一个)

我无法定义某种规则,通过该规则我可以​​决定应该使用哪个活动,因为所有这些活动都在执行不同的操作,而用户只是选择“在我的应用中打开”。

1 个答案:

答案 0 :(得分:2)

您可以拥有一个活动,声明该意图过滤器,然后决定在运行时在该活动中启动哪个特定活动。