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中的这种行为变化提供参考吗?我在开发者网站上找不到同样的变化。