Знакомый сценарий: у меня есть действие Main , которое запускает Игру активность при нажатии кнопки. Если пользователь нажимает HOME, а затем снова запускает мое приложение, ему должно быть представлено действие Game , что он делал в последний раз при использовании приложения.
Однако вместо этого происходит то, что он снова получает активность Main . У меня такое ощущение, что Android создает еще один экземпляр MainActivity и добавляет его в стек для этого приложения, вместо того, чтобы просто выбирать то, что было наверху, потому что если я нажимаю BACK после перезапуска приложения, я получаю к Игровой активности! И метод Main.onCreate вызывается каждый раз вместо вызова GameActivity.onResume.
Мой AndroidManifest.xml
в значительной степени «голый»:
Как видите, ничего особенного .
И вот так запускается новое действие, тоже очень просто:
Intent intent = new Intent(this, GameActivity.class);
startActivity(intent);
Теоретически это должно работать в Android «из коробки», как гласит ответ на очень похожий вопрос: Поддержание стандартное состояние стека активности приложения в Android (с использованием режима запуска singleTask) , но это не так.
Я читал и перечитывал документацию по Activity, Task и Stacks и просматривал все связанные ответы в SO, но я не могу понять, почему такие простая установка работает не совсем так, как ожидалось.