В настоящее время у меня есть приложение, в котором одно действие (не основное) можно открыть с помощью общих намерений.Это прекрасно работает с фильтром намерений, объявленным в манифесте, единственная проблема заключается в том, что он открывает это действие в отдельном стеке задач (который показывает два экземпляра приложения, запущенного на устройстве, когда пользователь нажимает кнопку обзора системы ...)
<!-- 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
, и это может испортить порядок обратного стека.
Как остановить намерение общего ресурса, открывающее новую задачу, и вместо этого добавить действие в верхнюю часть стека текущего приложения?