Search code examples
androidandroid-activitylogic

Android Game Activity Flow - Back to Start


I am looking for the best way in which you would setup navigation in an Android game; a best practice for Android Game Activity Navigation. I have the following scenario:

  • A Main Menu Activity (Greets the User on Start and gives them options)
  • A RunLever Activity (This runs a level of the game)
  • A Transitional Menu Activity (This appears between levels and shows scores and stuff like that while providing a button to go to the next level)

Therefore, if the player starts the game and completes two levels they might have an activity stack that looks something like this:

Diagram of possible program flow.

The problem that I have here is one of expectations when the back button is pressed:

  • If I was on the last In Between Menu and I pressed back then I would expect to go back to the Main Menu. Instead it would probably take me back to the level that I just won.
  • I would not expect the last levels that I have played and previous In Between Menu activities to stay sitting there in the Back Stack. I would only expect the Main Menu, the Current Level I am playing and one instance of the In Between Menu to be sitting in the back stack at any one time.

As far as I can tell everything else will work properly and as the user expects. I guess I just want to know what the best options are to solve this kind of problem. To make sure that the activities in this game occur as expected. Should they even be separate Activities? Thanks.


Solution

  • Rather than pushing a new In Between Menu Activity after completing a level, can you instead pop the activity stack, and detect that (e.g.) level one has been completed when the already-there in between activity becomes active again?

    That way, the first "back" would always go back to the in-between, the second "back" would go back to the main menu, and the third "back" would leave the game. All of which is probably what the user expects.