Как вернуться к последнему запущенному действию при повторном запуске приложения после нажатия HOME?

Знакомый сценарий: у меня есть действие 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, но я не могу понять, почему такие простая установка работает не совсем так, как ожидалось.

23
задан Community 23 May 2017 в 12:25
поделиться