Поведение бэк-стека активности становится довольно странным, если одновременно определить основное действие с помощью singleTask:
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Что еще хуже, в официальном руководстве разработчика по этому специальному объяснению нет четкого объяснениявариант использования.Некоторые разделы, связанные с этой темой, даже противоречат друг другу.
Попробуйте использовать launchMode = "standard" на вашем MainActivity
A и launchMode="singleTask"
на вашем Activity
B, что даст ожидаемое поведение, которое выописано.