Знакомый сценарий: у меня есть основное действие, которое запускает игру, когда нажата кнопка. Если пользователь нажимает кнопку "HOME", а затем снова запускает мое приложение, он должен быть представлен с игрой, что было последним при использовании приложения.
Однако, что происходит вместо этого, он снова получает основное действие. У меня такое ощущение, что Android создает еще один экземпляр MainActivity и добавляет его в стек для этого приложения, вместо того, чтобы просто выбирать все, что было наверху, потому что, если я нажму BACK после перезапуска приложения, я попаду в игру! И метод Main.onCreate вызывается каждый раз, вместо вызова GameActivity.onResume.
Мой AndroidManifest.xml
в значительной степени "голые кости":
<activity android:name="MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="GameActivity" android:label="@string/app_name">
</activity>
Как вы можете видеть, ничего необычного.
И вот как запускается новая активность, очень просто:
Intent intent = new Intent(this, GameActivity.class);
startActivity(intent);
В теории это должно работать в Android только "из коробки", так как ответ на очень похожий вопрос гласит: Поддержание стандартного приложения. Состояние состояния Back Back в Android (с использованием singleTask режим запуска), но это не так.
Я читал и перечитывал документацию по Activity, Task и Stacks и просматривал все связанные ответы в SO, но я не могу понять, почему такая простая настройка работает не так, как ожидалось.