В моем приложении для Android у меня есть основное действие, которое служит точкой входа в мое приложение, которое настроено в моем файле манифеста следующим образом:
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:alwaysRetainTaskState="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Итак, для конкретного примера использования пользователь может запустить приложение с главного экрана, щелкнув значок в панели запуска приложения. После запуска приложения пользователь переходит от основной деятельности к активности A, а затем, наконец, к активности B. На этом этапе пользователь решает проверить свою facebook, поэтому они нажимают кнопку "домой", чтобы положить мое приложение в фоновом режиме, и запускает приложение facebook.
После проверки своей facebook пользователь хочет вернуться в мое приложение, поэтому они нажимают домашний ключ и запускают приложение из панели запуска приложения (как и в первый раз, когда он был запущен).
Когда пользователь вернется в мое приложение, я хочу, чтобы приложение вернулось к последнему действию, которое было у пользователя, когда приложение было помещено в фоновое изображение, которое в этом случае является активностью B. В файле манифеста я установил alwaysRetainTaskState = true, чтобы убедиться, что ОС не убивает мои действия приложения.
Теперь на мой вопрос: как мне получить описанное выше поведение? Всякий раз, когда я нажимаю значок своего приложения, он всегда начинается с основной деятельности, несмотря ни на что. Я думаю, это из-за атрибута category.LAUNCHER. Я пробовал Android: launchMode = singleTask, но это не изменило; он всегда начинается с Main.
Если кто-то может прояснить фильтры намерений, режимы запуска и задачи, это будет здорово!