Android 棒棒糖:让我的活动停留在启动共享意图的任务中

Android 棒棒糖:让我的活动停留在启动共享意图的任务中,android,android-intent,android-5.0-lollipop,Android,Android Intent,Android 5.0 Lollipop,“我的第一个应用”有一个处理“共享”意图的活动。它在AndroidManifest.xml中的活动如下所示: <activity android:name="com.example.foo.myfirstapp.MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="andro

“我的第一个应用”有一个处理“共享”意图的活动。它在
AndroidManifest.xml
中的活动如下所示:

    <activity
        android:name="com.example.foo.myfirstapp.MainActivity"
        android:label="@string/app_name">
        <intent-filter>
          <action android:name="android.intent.action.SEND"/>
          <category android:name="android.intent.category.DEFAULT"/>
          <data android:mimeType="image/jpeg"/>
        </intent-filter>

    </activity>
,似乎是最后三个标志导致了问题。具体地

与FLAG_ACTIVITY_MULTIPLE_TASK配对时,这两种行为(FLAG_ACTIVITY_NEW_DOCUMENT或FLAG_ACTIVITY_NEW_TASK)都会被修改,以跳过搜索匹配的任务并无条件启动新任务

我一直试图通过在
AndroidManifest.xml
中的活动中指定
android:launchMode
android:documentLaunchMode
来“覆盖”这些标志,但没有成功

从一开始,使用documentLaunchMode“从不”似乎很有希望,因为

即使意图包含Intent.FLAG\u activity\u new\u文档,也不会将此活动启动到新文档中。这使活动编写器能够最终控制其活动的使用方式。 但这不起作用


我也考虑过android:taskAffinity,但似乎没有办法说“请选择您启动的任何任务”

恐怕您对此无能为力。它不在你的控制之下。这是“相册”应用程序启动其“共享”意图方式的改变。如果它不想让你的活动参与到它的任务中,你不能强迫它参与其中


如果您对“共享”活动的多个实例存在问题,您可以将“共享”活动声明为
launchMode=“singleTask”
launchMode=“singleInstance”
(取决于你的需要。不过,这可能会破坏其他东西。

谢谢。看起来
excludeFromRecents
也可以用来防止在“recents”区域看到所有那些“共享”活动。你能为Android L中的这种行为变化提供参考吗?我在开发者网站上找不到同样的变化。