У меня есть приложение с двумя значками запуска и двумя различными действиями. Файл манифеста, как, как показано ниже:Android-приложение с двумя значками запуска с отдельной задачей. Устранение
....
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MySettings"
android:label="@string/settings"
android:icon="@mipmap/ic_launcher"
android:taskAffinity="my.package.com.MySettings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
....
Я хочу MyActivity
быть по умолчанию экран должен быть открыт после установки, так как я использовал .category.DEFAULT
.
action.MAIN
и category.LAUNCHER
должны показать две отдельные иконки Launcher (1 для MyActivity
, 1 для MySettings
).
Проблема: Когда я открываю MyActivity
, MySettings
экран также открывается. Я хочу, чтобы каждый значок запуска отображал только его соответствующую активность. Я использовал taskAffinity
для каждой задачи для решения проблемы, но это не сработало. Я думаю, чтобы сделать taskAffinity
работы, действие должно быть начато с флага Intent.FLAG_ACTIVITY_NEW_TASK
, которого я не могу в моем случае (оба запускают деятельность).
Я также пытался использовать android:launchMode="singleTask"
, но он тоже не работал.
Как сделать каждый значок пусковой установки, чтобы открыть только ее активность?
UPDATE: К сожалению, я понял, MyActivity
не открывается MySettings
, он казался таким же. MyActivity
не имеет пользовательского интерфейса, поэтому он показал пустой экран, который похож на MySettings
. taskAffinity
работает правильно. Я добавил android:theme="@android:style/Theme.NoDisplay"
в MyActivity
, чтобы скрыть интерфейс.
@ Джемшит Я отредактировал свой ответ. Его работа согласно вашему требованию. – Shekhar