I'm writing a puzzle to run on Android devices.
There is some heavy lifting in determining the layout of the puzzle, so I've added a "Busy" indicator. This is just a set of dots rotating about a central point. The puzzle, and busy indicator, appear on Card 1. Card 2 is a menu page, which offers the user the option of generating a new puzzle. If the user selects this option, then a global variable (declared on both card 1 and 2) is set to "GiveThemANewPuzzle", and a Go To Card 1 is performed. On Card 1 the OpenCard handler checks the global variable and generates a new puzzle.
On the IDE - Everything works fine. The busy indicator appears on app startup, and when the user selects the "Generate a new puzzle" option. All Good.
As a windows stand alone app (I just thought that I try this) - same as the above. All good.
On the Android emulator, and deployment to real android device - the busy indicator appears on app startup, but NOT when the user selects the "Generate a new puzzle". When the user selects "Generate a new puzzle", android does all of the heavy lifting defined in the OpenCard handler on Card 1, while continuing to display Card 2. Only after Android has finished all of the heavy lifting defined in the OpenCard handler of card 1, does it update the display to show card 1.
I tried inserting the single extra command Answer "Hi" in the first few lines of the OpenCard handler on card 1. With Answer "Hi" in place - Android switches to display Card 1 immediately, then does the heavy lifting. But I don't want an Answer "Hi" in my app

It seems to me that Android (but not the IDE or Windows) is effectively doing its own Lock Screen, and not unlocking the screen until after the heavy lifting is over.
I've tried doing a search and removing every "Lock Screen" and "Unlock Screen" statement in my code. This made no difference to the way that Android behaved.
Is there a way for me to force Android to update of the display after changing card (other than putting an Answer "Hi" statement in my code)?
Thanks in advance