GeometriX
I think a much simpler method would be to simulate running in the background. If you save and load system time values when you open and close the game respectively, you can compare them and quickly compute all the actions that would have transpired over that time period without the user's knowledge. Then pick up the game from there. Hope this helps and good luck with your game