В моем приложении для 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.
После проверки своего фейсбука пользователь хочет вернуться в мое приложение, поэтому он нажимает клавишу возврата и запускает приложение из панели запуска приложения (так же, как они это делали при первом запуске).
Когда пользователь возвращается в мое приложение, я хочу, чтобы приложение вернулось к последнему действию, в котором он находился, когда приложение было помещено в фоновый режим, что в данном случае является действием B. В файле манифеста у меня естьset alwaysRetainTaskState = true, чтобы ОС не убивала активность моего приложения.
Теперь мой вопрос: как мне получить поведение, описанное выше?Всякий раз, когда я щелкаю значок моего приложения, оно всегда начинается с основного действия, несмотря ни на что.Я думаю, что это из-за атрибута category.LAUNCHER.Я пробовал Android: launchMode = singleTask, но это не имеет значения;он всегда начинается с Main.
Если бы кто-то мог прояснить фильтры намерений, режимы запуска и задачи, это было бы здорово!