我目前有一个应用程序,可以通过共享意图打开一个活动(不是主要活动)。这与清单中声明的intent过滤器一起使用时效果很好,唯一的问题是,它在单独的任务堆栈中打开了此活动(当用户单击概览系统按钮时,该活动显示了设备上正在运行的应用的两个实例...)
<!-- this activity enables the search dialog to initiate searches in itself. -->
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- enable the search dialog to send searches to it's own activity -->
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"
android:value=".MainActivity" />
</activity>
<!-- Media Player Activity -->
<activity
android:name=".activities.MediaPlayerActivity"
android:launchMode="singleTop"
android:hardwareAccelerated="true"
android:configChanges="keyboardHidden|orientation|screenSize"
>
<intent-filter
android:label="@string/app_name">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="text/*"
android:host="@string/media_host_name"/>
</intent-filter>
</activity>
以上是清单文件的相关部分。我无法将MainActivity
设置为MediaPlayerActivity
的父级,因为其他活动可以打开MediaPlayerActivity
,这会弄乱后退堆栈的顺序。
如何停止打开新任务的共享意图,而是将活动添加到当前应用程序堆栈的顶部?