В моем действии программы запуска для атрибута launchMode установлено значение singleTask из-за определенных требований.
<activity
android:name=".map.MapsActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/MapScreenTheme"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Проблема, с которой я столкнулся, заключается в том, что если я открою другое действие -> нажмите кнопку домой -> щелкните значок приложения в приложении запуска -> Он откроет MapActivity, а не действие, которое было открыто ранее.
Однако этого не происходит, если я перехожу к приложению через меню последних. Тогда вновь открытая активность остается наверху.
Может кто-нибудь объяснить, что здесь происходит в отношении backstack и почему ActivityManagerService не принимает во внимание, что процесс приложения уже существует, и все же решает запустить приложение запуска и очистить backstack, а не просто продвинуть приложение вперед?
Эту проблему можно наблюдать в небольшом примере приложения, созданном здесь - https://github.com/abhiank/SingleTaskActivity а>
launchMode
вызывает больше проблем, чем решает. Пожалуйста, объясните, почему вы считаете, что вам нужен этот специальный режим запуска. - person David Wasser   schedule 18.04.2020taskAffinity
, и вам не потребуются специальные режимы запуска. - person David Wasser   schedule 18.04.2020taskAffinity
. Вот как действие по обмену URL-адресом не влияет на основной задний стек. Я бы также хотел использовать taskAffinity в основном backstack, но проблема в том, что я не могу установить настраиваемый taskAffinity в намерении открыть основное действие из действия url. - person vepzfe   schedule 18.04.2020launchMode="singleTask"
. Взгляните на это: stackoverflow.com/a/29376250/769265 Использование повторного родительства задачи может быть для вас способом чтобы решить вашу проблему. - person David Wasser   schedule 19.04.2020